关于C++程序一处不懂

img


程序中画红线一块,P自加完又自减,值没变。这怎么能确定s1中\0的位置呢?

先标记一下①②③:

img


①:定义一个字符指针p 并将s1赋值给p 也就是说 经过这一句 p指向了s1
②:*p++ p一开始不是指向s1来着 于是在这个循环中p指针开始移动(在s1这个字符串上逐个字符地移动),移动到'/0'终止符,退出循环,此时也就找到了'\0'的位置。
③:--p,p的位置后退一位,也就是让它不在'\0'处。

希望对题主有所帮助,可以的话,帮忙点个采纳!

while循环++,一直到遍历到最后null才停,p--就是null的上一个字符就是\0

p指针