请逐句分析此程序

来源:百度知道 编辑:UC知道 时间:2024/06/24 15:37:05
main()
{
int i=10,a[]={10,20,30,15},*p1;
char *b="Learning",**p2=&b;
p1=&i;
printf("%4d",*p1+20);
for(p1=a;p1<a+4;p1+=2)
printf("%4d",*p1);
printf("\n%c\t%s\n",*(b+4),*p2);
}

int i=10,a[]={10,20,30,15},*p1;//申请了整型变量i,一维数组a,指针p1.
char *b="Learning",**p2=&b;//通过指针b申请字符串,并申请二级指针p2指向b.
p1=&i;//p1指向i.
printf("%4d",*p1+20);//输出i+20的值,即30.输出宽度为4.
for(p1=a;p1<a+4;p1+=2);//初始p1指向a首元素地址,测试p1是否指向数组末尾
printf("%4d",*p1);如果测试结果为真,输出i,宽度为4,p1向后移动2个数据位。继续循环。
printf("\n%c\t%s\n",*(b+4),*p2); //输出‘n’和“Learning”。