c语言两个题目,谢谢帮助!

如图,两道题,写出原因,谢谢了大佬们!

第1个回答  2019-11-26
左图:
分析:a是二维数组。而p是一级指针(就是指向元素的指针),它只能指向一个元素,就是说,用*p就能调出p指向的元素的值,注意是一个*号(它在这里叫“取值符”),不必也不能用两个**。
看B和D两个选项,都使用了两个取值符(*),所以,它们都是错误的。当然,选项A是对p赋值,跟引用数组元素毫无关系,也是错误的。
结论:只有选项C正确。
右图:
分析:一维静态数组a的元素是0.1.2.3.4,对应的元素是a[0].a[1].a[2].a[3].a[4]。
声明一级指针p后,让p=&a[2],就是把a[2](对应的元素是2)的地址赋值给p。
当运行(*p)++时,是先取p指向的值(2),再自增,很明显,自增之后,这个元素值变成了3。
结论:说指向的元素值是2,是错误的。应该选A。
有什么问题请留言。
第2个回答  2019-11-26
第9题
根据题意,取数组元素的值。
A是赋值。错误。
B是内层括号已经取值,是整数,已经不再是指针类型。错误。
C因为p没有赋值。错误。
D正确。
第10题
根据题意,p是指向数组下标为2的元素的指针,取值为整数2。然后根据题意自增后元素数值应是3。
答案选A。本回答被提问者采纳
第3个回答  2019-11-26
左图的正确选项是D,并不是C。右图的正确选项是A——因为(*p)++;使p指向的元素值由2变成3了,注意是“执行后”,后++已起作用了,若问表达式(*p)++;的值是多少,那应该是原值2。
第4个回答  2019-11-26
指针p类型为int *,所以是C
B的话p的类型得是int (*)[4]

*p即a[2],a[2]++,使a[2]值为3,所以p直线的元素值为3本回答被网友采纳
第5个回答  2019-11-26
什么⊙∀⊙?⊙∀⊙?⊙∀⊙?
相似回答