下列程序段的输出结果是__B___.int *p,*q,k = 1,j=10 ; p=&j; q = &k ; p =

下列程序段的输出结果是__B___.int *p,*q,k = 1,j=10 ; p=&j; q = &k ; p = q ; (*p)++; printf("%d"
下列程序段的输出结果是__B___.
int *p,*q,k = 1,j=10 ;
p=&j; q = &k ; p = q ; (*p)++;
printf("%d",*q);
A、1 B、2 C、10 D、11
aking1029 1年前 已收到1个回答 举报

断水客 幼苗

共回答了19个问题采纳率:78.9% 举报

你的答案是错的
第一题,p,q是指针,开始的时候p指向j,q指向k,然后p=q也就是p指向了q指向的内存,也就是说p和q这时都指向了q指向的k,然后(*p)++是p指向的数值加1,也就是k+1.所以输出的*q和*p是相同的,也就是k的值,也就是2 所以应该选B
第二题,先看B,字符串是不能直接这么赋值的,除了初始化的时候;C,P[0]是一个对象,对象访问域要用'.‘不能用->;D,s是字符数组,而’a‘是字符,是不能赋值的.而A,p是个数组名,它也是p数组的第0号元素的地址,相当于p[0]的指针,指针用->来访问域是没问题的.

1年前

4
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.024 s. - webmaster@yulucn.com