试题题干
#include<stdio.h>
struct country
{
int no;
char name[20];
}a[]={1,"China",2,"Russia",3,"America"},*p=a;
void main()
{
p++;
printf("%d,%s",(*p).no,(*p).name);
p--;
printf("%d\n,%s",p->no,p->name);
printf("%d,%s\n",a[2].no,a[2].name);
}
参考答案
试题解析
*p=a是指针变量p指向一维数a,p++是先引用再加1,即指针变量p的值为1,故执行输出语句输出的是a[1].no,a[1].name的值2,Russia;
p--是先引用再减1,即指针变量p的值为0,故执行输出语句输出的是a[0].no,a[0].name的值1,China;
最后输出是a[2].no,a[2].name的值,即输出的是3,America。