上面的两张图片分别为是调代码和运行结果,从上述结果可以知道输出结果均为数组中的数值,而不是地址。“++”的运算符比“”优先级高。
“++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。
“*++p”,"*p++","(*p)++","*(p++)"
原文:https://www.cnblogs.com/fcz1221/p/14136326.html