#include<stdio.h>
main()
{
char *a[]={"adcd","ef","gh","ijk"};
int j;
for(i=0,i<4,i++)
pintf("%c",*a[i]);
}
首先,char *a[] = {"abcd", "ef", "gh", "ijk"};应该怎么理解。
其实a是一个数组,有4个元素。楼主可以这样理解:
char*
a[4] = {...};
那么,
a[0]是一个char *变量,它指向一个字符串:"abcd";
a[1]是一个char *变量,它指向一个字符串:"ef";
a[2]是一个char *变量,它指向一个字符串:"gh";
a[3]是一个char *变量,它指向一个字符串:"ijk";
在知道这个事实的基础上,那么再解决*a[i]是什么意思:
*a[i] <=> *(a[i] + 0) <=> a[i][0],这说明a[i][0]是a[i]所指向的字符串中的第一个字符,输出结果也就不言而喻了。
如果要输出字符串,那么:
for(i = 0; i < 4; i++)
printf("%s\n", a[i]);