答案是*(s+1)可是为啥?提上不是说了不能移动指针啊,既然不能移动指针,那s就不可能+1了吧?
追答+1就移动了指针了?用下列代码段试试?printf("%p\n",s);printf("%d\n",*(s+1));printf("%p\n",s);,执行过后你看看s移动了没有。s+=1、s++、++s、s=s+1,当n是不为0的整数时,s+=n、s=s+n都移动了指针,而s+n是不会移动指针的。
追问为什么s+n不移动指针?
书上也写着所谓移动指针就是对指针变量加上或减去一个整数
追答你已经钻到牛角尖最小的那里了!“加上或减去一个整数”的意思是把所得到的结果再赋给那个指针变量才能使指针“移动”。你就是加一千减一万,不赋给原指针变量,原指针变量能移动吗?所以s=s+n,使指针s移动了n个元素,而s+n却没有移动指针s。
追问明白了