第五题,过程思路,谢谢

2025-04-01 11:59:49
推荐回答(2个)
回答(1):

  #include


  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

  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);

  }

回答(2):