前言
秃又强!秃又强!秃又强!
正文
夜已深, 废话少说, 上代码!!!
有兴趣的宝子们可以自己实践一下!
//while循环后置++的判断细节
int main()
{
char arr[] = { "abcdef" };
int count = 0;
char* p = arr;
while (*p++)
{
count++;
}
printf("%d ", count);
return 0;
}
图中显示 指针p中存放的值为\0, 但是依旧进入到了while循环中, 这说明, 这个过程为: 先判断*p, 此时*p指向的是字符' f ', 为真, 然后指针p++, 指向了\0, 然后再进入循环体中. 并且此时指针p指向的地址为0x0036FE7E. 而且while还会继续进行下一次循环的判断.
这里观察指针p的地址就可以发现, 指针p指向了下一个字节, 说明在while循环的判断条件中使用后置++, 即使判断条件为假, 后置++依然会进行, 这个地方极其容易忽视!!!
再困也得有结束语! 我是专注学习的章鱼哥~