有以下程序 #include struct link{ int data; struct link* next; }; main() { struct link *h,a ,b; h=&a; a.data=10; a.next=&b; b.data=20

admin2015-07-28  14

问题 有以下程序
#include
struct link{
int data;
struct link* next;
};
main()
{ struct link *h,a ,b;
h=&a; a.data=10; a.next=&b; b.data=20;

}
程序运行时不能输出10,20的语句是( )。

选项 A、printf("%d,%d \n",h->data,a.next.data);
B、printf("%d,%d \n",a.data,(*a.next).data);
C、printf("%d,%d \n",h->data,(*a.next).data);
D、printf("%d,%d \n",a.data,a.next->data);

答案A

解析 语句"h=&a; "将指针h指向了链表结点a的地址,所以h->data与(*h).data、a.data等价为10,语句"a.next=&b;"将结点b连接到了结点a的后面,a.next->data与b.data等价为20,选项A)中引用语句不正确,应该为a.next->data,所以答案选A)。
转载请注明原文地址:https://kaotiyun.com/show/2KJp777K
0

最新回复(0)