赞
踩
测试代码:
- char a[]="13579";
-
- char* p;
-
- p=a;
-
- y= //这里分别放入下面的语句
-
- printf("y=%c\n",y);
-
- printf("*p=%c",*p);
在后面分别尝试各种赋值给y
Y=*p++;//把*p赋给y,然后p地址++;
结果为
Y=1
*p=3
Y=*(p++);//把*p赋给Y,然后p地址++;
结果与y=*p++一样
结果为:
Y=1
*p=3
Y= *(++p);//先p地址++,然后赋值给y
结果为:
Y=3;
*p=3;
Y=*++p;//同样也是先p地址++,然后赋值给y
结果相同
结果为:
Y=3;
*p=3;
结论:
左++先加1后操作
右++先操作后加1
即
前置++,先+1
后置++,后+1
(*p)++,使用()强制将*与p结合,只能先计算*p,然后对*p整体的值++。
++(*p),先*p取值,再前置++,[该值+1后]作为整个表达式的值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。