关于C语言指针数组的一道题

来源:百度知道 编辑:UC知道 时间:2024/07/04 10:35:03
#include<stdio.h>
main()
{char *a[]={"adcd","ef","gh","ijk"};int j;
for(i=0,i<4,i++)pintf("%c",*a[i]);

}
帮忙解一下 告诉我结果 并说明一下原因 谢谢了 非常感谢
为什么%C是 aegi具体说一下谢谢了

%c 表示输出字符 %s 表示输出字符串
这题输出的便是每个字符串的第一个字符

应该是这样吧

#include<stdio.h>
void main()
{
char *a[]={"adcd","ef","gh","ijk"};
for(int i=0;i<4;i++)printf("%c",*a[i]);

}
结果aegi
因为输出的是%c

char *a[]定义的是一个指针数组(要注意指针数组与指向数组的指针的区别),也就是说,a是一个数组名,它的四个元素都是指针,其中a[0]指向字符串"adcd"的首地址,a[1]指向"ef"的首地址,a[2]指向"gh",a[3]指向"ijk"
那么*a[0]就是字符串"adcd"的首元素,即a,a[1]就是字符串"ef"的首元素,即e,a[2]就是g,a[3]就是i
所以输出的结果是aegi