C语言 二维字符数组的输入输出问题

2020-10-28 科技 147阅读
多个字符串的输入输出
#include
int main()
{
char a[3][20];
char *p;
int i;
p=a[0];//a[0]为列指针,p指向0行0列元素,p=a[0]+j指向0行j列元素。
for (i=0;i<3;i++)gets(a[i]);
// for (i=0;i<3;i++)printf("%s\n",a[i]);
for (i=0;i<3;i++)printf("%s\n",p+i*20); //指针寻址
;//第二个字符串开始的地址,应该是a[0][0]后移20个字符的地方。p是指向字符的指针
}
数组名表示列指针*(a+i)等价于a[i]列指针
#include
int main()
{
char a[3][20];
int i;
for (i=0;i<3;i++)gets(*(a+i));//列指针*(a+i)和a[i]等价
// for (i=0;i<3;i++)printf("%s\n",*(a+i));
for (i=0;i<3;i++)printf("%s\n",*(a+i));
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com