c语言初学者,有大佬能解释下吗?为什么答案是11,11,11,12
2个回答
展开全部
对于这种问题不能心急,咱们一条一条看:
首先,定义了整数型x数组,数组的首位数据是10;
后面定义了整数型指针px,并且指针的初始地址被指向数组的首位,也就是数据10所在的地址了;
好了,现在开始输出;
a. 第一句printf输出的是++*px,要搞清楚这里有哪些操作:
1)取数组首位地址中的数据,也就是10
2)进行加一,也就是11(注意!加一操作之后,数组的第一位数据不再是10,已经变成11)
3)进行输出(11)
b. 后面的printf输出,操作:
1)取数组首位地址中的数据,现在是11
2)进行输出(11)
c. 第二句printf输出的是(*p)++,操作(这一句之前有px=x,还是将px的指针指向了x数组的首位):
1)取数组首位地址中的数据,也就是11
2)进行输出(11,这里先输出,后加一)
3)进行加一,也就是12(注意!加一操作之后,数组的第一位数据不再是11,已经变成12)
d. 后面的printf输出,操作:
1)取数组首位地址中的数据,现在是12
2)进行输出(12)
所以,综上,所有的输出是11,11,11,12
首先,定义了整数型x数组,数组的首位数据是10;
后面定义了整数型指针px,并且指针的初始地址被指向数组的首位,也就是数据10所在的地址了;
好了,现在开始输出;
a. 第一句printf输出的是++*px,要搞清楚这里有哪些操作:
1)取数组首位地址中的数据,也就是10
2)进行加一,也就是11(注意!加一操作之后,数组的第一位数据不再是10,已经变成11)
3)进行输出(11)
b. 后面的printf输出,操作:
1)取数组首位地址中的数据,现在是11
2)进行输出(11)
c. 第二句printf输出的是(*p)++,操作(这一句之前有px=x,还是将px的指针指向了x数组的首位):
1)取数组首位地址中的数据,也就是11
2)进行输出(11,这里先输出,后加一)
3)进行加一,也就是12(注意!加一操作之后,数组的第一位数据不再是11,已经变成12)
d. 后面的printf输出,操作:
1)取数组首位地址中的数据,现在是12
2)进行输出(12)
所以,综上,所有的输出是11,11,11,12
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询