有以下程序: #include<stdio.h> struct ord{ int x,y;}dt[2]={1,2,3,4}; main( ) { struet ord*p=dt; printf("%d,",++p->x); printf("%d\n",++

admin2022-06-24  20

问题 有以下程序:
#include<stdio.h>
struct ord{
int x,y;}dt[2]={1,2,3,4};
main( )
{
struet ord*p=dt;
printf("%d,",++p->x);
printf("%d\n",++p->y);
}
程序运行后的输出结果是(          )。

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

答案B

解析 dt是一个结构体数组,所以初始化的结果为dt[0]={1,2),dt[1]={3,4}。*p=dt;,表示p指向dt[0]。++p->x中,->的优先级大于++,所以这个表达式等价于++(p->x),因为p->x为1,所以这个值为2,同理,第二个++p->y的值为2+1=3。
转载请注明原文地址:https://kaotiyun.com/show/PUkp777K
0

最新回复(0)