#include<stdio.h>
void main()
{
char n[]={“fish”,“www.fish.comui”,“home.fishc”,“fu”,“thank”};
char p;
int i;
for(i=0;i<4;i++)
{
p=n+i;
printf("%s\n",p);
}
}
首先我们要明白,如果定义一个字符串数组a[4],其实就是一个一级指针,放的是第一个字符的首地址,a+1放的就是第二个字符的首地址。
这个也不难理解,同理我们知道n[]是一个二维指针n里面放的是a[0]的地址,a[0]放的是第一个字符串里面第一个字符的首地址。而经过我的调试,我也发现n+i放的就是n[i]的地址,这个应该容易理解。
所以我们要定义一个p来接受,输出的时候我们要注意一定要输出p,因为这个是n[i]的,而里面放的就是这段字符的首个字符的地址,用%s输出就正确了。
新手,写博客为了见证自己的成长,也为了督促自己,有不对的地方,希望大家多多指正。