这个while循环等价于
while(*(str1+i) != '\0'){
}
可在最后一句前插入:printf("\n%d",i); 看一下i的值
#include<stdio.h>
int main()
{
char *str1="hello",*str2;
int i=0;
str2=str1;
puts(str2);
str1="world";
if(str1!=str2)
printf("str1<>str2\n");
while(*(str1+i))
printf("%c",str1[i++]);
printf("\n%d",i);
return 0;
}
(str1+i) 其中i=0,1,2,3,....
逐个遍历str1字符串的每个字母,直到(str1+i)=='\0'循环结束,此时i==5。
字符串都有结束符的。