c语言高手请进:帮我找出错误,再好解释一下

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:21:11
#include "stdio.h"
char b[4]={"morning","industry","beautiful","english"};
void main()
{
int i;
char *x;
x=&b[2];

for(i=0;i<4;i++)
{
puts(x);
x++;
}
}

最直接、最明显、最重要的有四处,其他的可以根据这四处再修改。

错误一、
char b[4]={"moring","industry","beatiful","english"};
1. 左边char b[4]与右边{"moring","industry","beatiful","english"};类型不匹配。其原因是:
(一)左边是字符数组的初始化,其格式有两种:(如下)
(1)char b[6]={'H','E','L','L','O'}; (其中6可 以省略不写)
(2) char b[6]="HELLO"; (其中6可以省略不写)

(二) 右边是字符串数组初始化(二维字符数组初始化)其格式是:如:
b[m][n]={"abcde","fghij","zhang","shuxue","wertyt"}
(m决定字符串的个数,可以省略不写;n 决定每个字符串的最大长度,但是绝对不可以省略)

错误二
char b[4]={"morning","industry","beautiful","english"};
应该是在主函数main()里面定义。

错误三:
x=&b这种在执行过程中是格式是不正确的,其正确格式有2种:(1) x=b; (2) x=&b[][];

错误四:
在for循环中输出x的内容时需要运用一个调用函数。并在头文件#include "stdio.h"后定义所调用函数。

#include <stdio.h>