C语言:使用字符指针数组输入字符串,下面的程序运行后字符串5输出地串是乱码?还有

问题:
1.printf("请输入字符串%d:",++i);
scanf("%s",chars[i]); /*chars[i]改成p[i时,程序运行时有错误,为什么?*/
i--;
当chars[i]改成p[i时,程序运行时有错误,为什么?
2. char chars[5][7];
语句中的7是什么含义啊?
main()
{
int i,j;
char chars[5][7];
char *p[5]={chars[0],chars[1],chars[2],chars[3],chars[4]};
for(i=0;i<=4;i++)
{ printf("请输入字符串%d:",++i);
scanf("%s",chars[i]); /*chars[i]改成p[i时,程序运行时有错误,为什么*/
i--;
}
for(i=0;i<=4;i++)
{
printf("字符串%d:",++i);
printf("%s\n",*(p+i));
--i;
}
getch();
}

//程序有错,交换两处代码后排除!
//下面是正确的程序,回答见后!
#include <stdio.h>
void main()
{
int i,j;
char chars[5][7];
char *p[5]={chars[0],chars[1],chars[2],chars[3],chars[4]};
for(i=0;i<=4;i++)
{ printf("请输入字符串%d:",++i);
i--;//代码提前
scanf("%s",chars[i]); /*chars[i]改成p[i时,程序运行时有错误,为什么*/

}
for(i=0;i<=4;i++)
{
printf("字符串%d:",++i);
--i;//代码提前
printf("%s\n",*(p+i));
}
getch();
}
//chars[i]改成p[i]时,程序改正后,运行不会有错误,因为chars[i]与p[i]等价!
//语句中的7是表示字符串长度,每个字符串可以输入6个字符,
//最后一个用于存放'\0'
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网