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

①:定义一个字符指针p 并将s1赋值给p 也就是说 经过这一句 p指向了s1②:*p++ p一开始不是指向s1来着 于是在这个循环中p指针开始移动(在s1这个字符串上逐个字符地移动),移动到'/0'终止符,退出循环,此时也就找到了'\0'的位置。
③:--p,p的位置后退一位,也就是让它不在'\0'处。希望对题主有所帮助,可以的话,帮忙点个采纳!
while循环++,一直到遍历到最后null才停,p--就是null的上一个字符就是\0
p指针