#include <stdio.h>
//计算并返回字符串长度 int string_len(char *s) { int count = 0;//纪录字符串长度 while (*s++) {// 当当前字符为0,即(*s!=0)时,字符串长度加1,并移动至下一个字符(s++) count++; }
return count;//返回字符串长度count; }
int main() {
int size=string_len("i");
printf("字符串的长度是%d\n",size);//打印字符串长度
return 0; }
上面是计算并返回字符串长度的程序,其中 while (*s++) { count++; } 这一段,s可以理解为指向字符串首字符的指针,当第一次进入循环的时候,(*s++)应该理解为访问第二个字符,那么循环的判断句则是从判断第二个字符开始,并没有判断第一个字符,那么输出的长度应该比真实的少1,但是运行的结果并没有如此,而是字符正真的长度,为什么呢? 我的理解哪里出错了呢?
|