有以下程序 #include #include main() { int *a,*b,*c; a=b=c=(int *)malloc(sizeof(int)); *a=1;*b=2,*c=3; a=b; printf("%d,%d,%d\n",*a,

admin2020-07-28  34

问题 有以下程序
#include
#include
main()
{ int *a,*b,*c;
a=b=c=(int *)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b;
printf("%d,%d,%d\n",*a,*b,*c);
}
程序运行后的输出结果是( )。

选项 A、3,3,3
B、2,2,3
C、1,2,3
D、1,1,3

答案A

解析 语句"a=b=c=(int *)malloc(sizeof(int));"将指针a、b、c指向了同一个内存地址,所以,*a、*b、*c始终保持一致,语句"*a=1;*b=2,*c=3;"执行完毕后,*a=*b=*c=3,语句"a=b"只是把b指向的地址指给指针a,执行完毕后仍然*a=*b=*c=3,所以输出结果为选项A)。
转载请注明原文地址:https://kaotiyun.com/show/Fb3p777K
0

最新回复(0)