第五题,过程思路,谢谢
#include <stdio.h>
int main()
{
//定义一个整型变量i,一个整型数组变量a,一个指针变量p1
int i=10, a[]={10,20,30,15}, *p1;
//定义指针b,指向字符串“Learning”的首地址,二级指针p2,指向指针变量b的地址
char *b="Learning", **p2=&b;
p1=&i; //将i的地址赋给指针变量p1
// *p 的意思是从p1存放的那个地址中取出值,p1存放的是i的地址,所以从i的地址取出来的值就是10
// 所以 *p+20 就是 30
printf("%4d",*p1+20);
//把p1指向数组a的首地址,每循环一次,指针变量p1要偏移两个int类型的长度
//所以,第一次打印出来的是10,第二次循环的时候,p1已经指向30了,所以打印出来的值是30
for(p1=a;p1<a+4;p1+=2)
printf("%4d",*p1);
//指针变量b指向的是字符串的首地址,如果以%c的形式打印出来,那*(b+0)就是L,*(b+4)就是n
//p2里面存放的是指针变量b的地址,所以*p2取出来的值就是"Learning"字符串的首地址,以%s的形式打印出来就是整个字符串
printf("\n%c\t%s\n",*(b+4),*p2);
}
厉害👍