“*++p”,"*p++","(*p)++","*(p++)"



上面的两张图片分别为是调代码和运行结果,从上述结果可以知道输出结果均为数组中的数值,而不是地址。“++”的运算符比“”优先级高。
++p”表示的是先输出原本“p”的值,在地址p自增一个字节,原本输出的时a[0],后面输出的是a[1]。
p++”表示的是p指向的地址先自增一个字节,输出a[2]的值,后面输出的p和a[2]一样。
上述两者一般的变化与一个整形变量“a++”,“++a”是基本相同的。两者都要自增一,但是前面的是先输出a在输出a自增的值,后者是直接自增后的值。
“(
p)++”表示的是先输出未自增的p的值,后面输出的是(p)的值直接自加1,这个表示的是对p指向的地址的值自增一。
(p++)”表示的是p指向的地址自增一个字节,输出的是a[3]的值。这里的地址还是a[2],所以p指向的地址先自增一个字节,输出自增后的地址对应的p。

posted @ 2020-12-14 23:22  -*+  阅读(314)  评论(0编辑  收藏  举报