首页 > 试题广场 >

给出以下程序的执行结果。 #include struct

[问答题]
给出以下程序的执行结果。
#include <stdio.h>
struct s
{   int n;
    int  * m;
} * p;
int d[5]={30,10,40,20,50};
struct s arr[5]={300,&d[0],100,&d[1],400,&d[2],200,&d[3],500,&d[4]};
void main()
{
    p=arr;
    printf{"%d,",++p->n);
    printf("%d,",(++p)->n);
    printf("%d\n:,++( * p->m));
}

推荐
对于表达式++p->n,先加后用,p->n=301,返回301。对于表达式(++P)->n,使p指向arr的下一个元素即arr[1],返回n成员,即100。对于表达式++( * p->m),p指向arr[1],p->m为d[1]的地址, * p->m返回d[1]之值10,然后自增1,返回11。本程序的执行结果为;301,100,11。
发表于 2018-05-07 20:40:56 回复(0)