3

15 年后我又回到了 C++ ......我只是不记得为什么我们需要指针的地址。就像在这个声明中一样:

char *next_token = NULL;
char *pszMozilla = strtok_s(szCopyVariable, "/", &next_token);

是否假设指针的地址最终将代表指针列表的开始?

4

2 回答 2

9

strtok_s是一个可重入函数,它需要在某处存储一些状态。该状态是指向它处理的最后一个字符之后的字符的指针。(想想看,这就是恢复标记化所需的全部内容。)

如果一个函数想在用户提供的空间中存储一个 X,用户需要提供一个指向 X 的指针,指向 X 将去的地方。在我们的例子中,X 是一个“指向 char 的指针”。

于 2013-05-23T19:58:32.077 回答
1

那是因为每次调用它时都会strtok_s()通过移动来保持状态。next_token

于 2013-05-23T19:55:50.273 回答