原代码如下,如果要通过二级指针p输出a[]中每个字符串的第二个字母,该如何修改代码?
#include<stdio.h>
int main()
{
char *a[]={"abcd","ef","gh","ijk"};
char **p=&a[1];
int i;
for(i=0;i<4;i++)
printf("%c",**p++);
return 0;
}
原代码如下,如果要通过二级指针p输出a[]中每个字符串的第二个字母,该如何修改代码?
#include<stdio.h>
int main()
{
char *a[]={"abcd","ef","gh","ijk"};
char **p=&a[1];
int i;
for(i=0;i<4;i++)
printf("%c",**p++);
return 0;
}
如果要通过二级指针p输出a[]中每个字符串的第二个字母,1、修改指针p指向a的第一个元素 2、 输出每个字符串的第二个字母,修改后代码:
#include <stdio.h>
int main()
{
char *a[]={"abcd","ef","gh","ijk"};
char **p=&a[0]; // 修改指针p指向a的第一个元素
int i;
for(i=0; i<4; i++)
printf("%c",*(*(p+i)+1)); // 输出每个字符串的第二个字母
return 0;
}