这方面的一个例子是:
char str[] = "Hello";
int strLength = strlen(str);
for ( char * pc = str;
pc < str + strLength;
pc++)
{
*pc += 2;
}
编辑:解决了写保护内存问题。
最佳答案
我的一个问题是,如果您在 for 循环中省略 * in *pc,您将获得很多乐趣。哎呀?更一般地说,要区分重新分配指针和修改值之间的区别稍微有点困难。
但是,(虽然我手边没有),Stroustroup 本人在 C++ 编程语言一书中赞同(参见编辑)指针迭代。基本上,您可以使用指针算法在两个 char 数组之间实现非常简洁的字符串比较。
简而言之,我建议以“只读”方式使用此类指针。如果您需要写入数组,我会使用更传统的 i。
当然,这完全是我个人的喜好。
编辑:Stroustroup 不认可指针迭代 OVER integer —— 他只是在书中的某个地方使用它,所以我的推理是他不认为它会破坏良好的实践。
关于c++ - 使用指针作为循环增量器而不是通常的 "int i"是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1234760/