C语言中设p为指向数组a的指针变量(p=a),则*(p++)与*p++等价吗?

运行后输出*(p++),正常情况得到a[0]的值。如果按照括号运算符优先级最高,输出 *(p++),应该得到a[1]的值啊。这是为什么? 代码: #include <stdio.h> void main() { int a[10]={10,11,22,33,44,55,66,77,88,99},*p; p=a; printf("%d\n",*(p++)); p=a; printf("%d\n",*p++); } 运行结果:10 10 为什么不是11 10

你说的*(p++)h和*p++是等价的 但是这里的++是先用在加所以结果都是10 要是程序是这样的 #include <stdio.h> void main() { int a[10]={10,11,22,33,44,55,66,77,88,99},*p; p=a; printf("%d\n",*(p++)); printf("%d\n",*(p++)); p=a; printf("%d\n",*p++); printf("%d\n",*p++); } 结果就会变成11了 希望采纳
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网