C语言中p++和p+1有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/05/25 06:04:10
指针中的for循环里的如for(;;p++)和for(;;){……;p+1;}

p++ 是后加加,与 p=p+1 略有不同,在循环体内部,p++ 落后一个时步,也就是做完一次循环体后它才增加1。p=p+1,在循环体内部,即时增1。

看:
for (p=0;p<10;p++){
printf("%d ",p);
};
printf("| %d\n",p);
printf("------------\n");
p = 0;
for (i=0;i<10;i++){ p = p + 1; printf(" %d ",p);};
printf("| %d\n",p);

可以看出
p++ 在循环体内 的值 的变化是:
0 1 2 3 4 5 6 7 8 9
出循环体后 变 10

p = p + 1; 在循环体内 的值 的变化是:
1 2 3 4 5 6 7 8 9 10
出循环体后 不变,保持 10

p++ 和 p=p+1 在这里没什么不同
不过如果用括号括起来,再赋给另一个变量,就有所不同了
比如
a=(p++)和a=(p=p+1)
假定之前p的值为N
那么对于前者a=N,后者a=N+1

两段代码的结果是一样的. 都是在for循环最后实现p+1

应该是 p++ 和 p=p+1 吧

没区别,就是写法的不同