C语言结构体,求大神解释为什么输出的是11,pt不是个指向结构体的指针么

 我来答
v侧耳倾听
2017-06-22 · 超过28用户采纳过TA的回答
知道答主
回答量:39
采纳率:66%
帮助的人:34.1万
展开全部

pt是指向结构体的指针,此时,pt是指向结构体st二维数组对象c的首地址。

在print("%d", ++pt->x); 语句中,成员选择(指针)运算符山歼念"->"的优先级高于自增运算符"++"的优先级。所以,先执行pt->x操作。此时取出的值为10。然后再执行++(即自增1操作逗困)。结果为11。

你可以为:

//前面略
int temp = pt->x;//pt->改指x 取出值10
printf("%d", ++temp);// temp先自增1,即11。再输出temp
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式