两个指针P1,P2 为什么scanf("%s\n,s")指的是P2而不是P1啊啊 .
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/17 10:39:21
![两个指针P1,P2 为什么scanf(](/uploads/image/z/2709375-15-5.jpg?t=%E4%B8%A4%E4%B8%AA%E6%8C%87%E9%92%88P1%2CP2+%E4%B8%BA%E4%BB%80%E4%B9%88scanf%28%22%25s%5Cn%2Cs%22%29%E6%8C%87%E7%9A%84%E6%98%AFP2%E8%80%8C%E4%B8%8D%E6%98%AFP1%E5%95%8A%E5%95%8A+.)
xNQ_iBa2Nr@CVWU m-(PVDNї\]*nHhz_?qsµOJJaR`&ŀkw\'*X1nǬ
F9ON\ɵO`,wft@{XV"~T}5%9l*msYUղ3܋TZWԘt?c(sVz:E=dDYQ]
G"aMT]FdzTդ*H$,ME.`x)$>2%y-쳄XbQ))
! oĢ1Őd\̉
OSHbº;x6My7a
\亞`dlI!tsi aQ9R?aOq6pstupYoRCH%j>wHP@yeZ⎏3PNMZvhHWa6(C
mSx8lF uZ~rMeIO[7[,/S=c
)vH:|g"=H=iJqc?mRYm9[Y%l'vӑbu>RF*#pS2bÅWy2pxҿF8*3t?JPӧ"Ok&v6Rg7GSF56Y^GK
两个指针P1,P2 为什么scanf("%s\n,s")指的是P2而不是P1啊啊 .
两个指针P1,P2 为什么scanf("%s\n,s")指的是P2而不是P1啊啊 .
两个指针P1,P2 为什么scanf("%s\n,s")指的是P2而不是P1啊啊 .
p1=p2=s;
将字符数组的首地址赋值给p1和p2,因此循环开始前p1和p2的值一样,都是S的地址.
在循环中,判断p1指向的地址中是否为空格,
如果是空格:
则p1++,即指向后面一个字符.
如果不是:
则将p1指向的字符复制到p2指向的地址,然后p1和p2都加1,即均指向后一个字符.
循环过程就是不断扫描字符,p1作为源字符指针,p2作为目标字符指针,过滤掉空格,重新排列,直到p1指向结束符为止.
所以循环结束时,p1和p2不再指向S.p1和p2指向哪里已经不重要,因为去掉空格的任务已完成.
S中的字符已重新排列,也就是形成了新的字符串,即不带空格的字符串.