一个例子是:
char str[] = "Hello";
int strLength = strlen(str);
for ( char * pc = str;
pc < str + strLength;
pc++)
{
*pc += 2;
}
Run Code Online (Sandbox Code Playgroud)
编辑:计入写保护内存问题.
我的一个问题是,如果你在for循环中省略*in*pc,你会有很多乐趣.哎呦?更一般地说,重新分配指针和修改值之间的区别有点难度.
但是,(虽然我没有它的方便),Stroustroup自己认可(参见编辑)C++编程语言书中的指针迭代.基本上,您可以使用指针算法在两个char数组之间进行非常简洁的字符串比较实现.
简而言之,我建议以"只读"的方式使用这样的指针.如果你需要写入数组,我会使用更传统的i.
当然,这是我个人的偏好.
编辑:Stroustroup不支持指针迭代超过整数 - 他只是在书中的某一点使用它,所以我的理由是他不认为它是良好实践的anethema.
使用你不完全理解的结构总是一个坏主意.这延伸到那些必须在你之后阅读你的代码的人......(我认为这是"不要成为一个聪明的程序员"规则的必然结果)
在这种情况下,如果你理解并完全熟悉构造,那么它本身就没有任何错误...但通常,如果你不得不问这是不是一个坏主意,那么你对它不是很满意...