C语言错误类型汇总

1、【[Error] 'm' redeclared as different kind of symbol】

C语言中出现以下报错:

【[Error] ‘m’ redeclared as different kind of symbol】

改正方法:

对一个变量,只能声明一次,多次声名,就算声明类型相同,也是错误的。

而函数中,可以直接在 “函数原型” 中声明。

例如:写一个求素数函数

int prime(int n){ //第一次声明在函数定义时!

int n,i; //第二次声明在函数体内,重复!!

if(i==2)

return 1; 是素数返回1,不是素数返回0

for(i=2;i<=sqrt(n);i++){

if(n%i==0)

return 0;

}

return 1;

}

2、【[Error] error: expected ';', ',' or ')' before '&' token

如上示,少; , ) 补全即可

3、[Error] lvalue required as left operand of assignment

lvalued 的意思为 左值 ;

原因:计算值为 ==!=而变量赋值为 =

赋值语句的左边应该是变量,不能是表达式。而实际上,这里是一个比较表达式,所以要把赋值号(=)改用关系运算符(==)

4、[error] ‘abs’ was not declared in this scope

原因:没有引入头文件或者头文件引入错误

正确的头文件为#include <stdlib.h> 而不是#include <math.h>

5、[error]Variable-sized object may not be initialized

原因:使用变量来定义数组长度,这个数组可以定义,却不能同时进行初始化赋值,例如a[n+1] 错误。需要在之后赋值。

如下例错误标注:

#include<stdio.h>
int main(void)
{
    int m,n;
    printf("输入矩阵的行数和列数\n");
    scanf("%d,%d",&m,&n);
    int array[m][n] = {0};      //此处有错误
    printf("输入%d个数字",m*n);
    for (int i=0;i<m;++i)
        {
            for (int j=0;j<n;++j)
                scanf ("%d",array[i][j]);
        }
    for (int i=0;i<m;++i)
        {
            for (int j=0;j<n;++j)
                printf("\t%-4d",array[i][j]);
                if (i%n==0)
                    printf("\n");
        }
    return 0;
}

6、[Error]was not declared in this scope

其含义为标识符在其出现的地方是未被定义的。

int main()
{
printf("%d",i);//这个i是未定义的。
}

这时就会显示一个’i’ was not declared in this scope或者类似的错误信息出来。

对于变量和函数,如果未定义都会出现这个错误,该错误出现时,需要根据出现该错误的行号及名称,查找对应名称变量或函数的作用,一般有如下几种可能:

1、忘记定义。写代码的时候疏忽了,导致一些变量直接使用但没有定义。只要对应定义相应的函数或变量即可。

2 、拼写错误。写代码的时候,敲错了字符。比如sum敲成了Sum, average敲成averge等。对应修改即可。

3 、作用域不正确。在超出变量和函数的作用域部分使用了该变量或函数。需要通过定义位置,或增加声明的手段,加大变量的作用域使其包含引用位置。

7、[Error]expected declaration or statement at end of input

可能错误:

1. 某一个函数或者变量没有在使用之前声明。

2. 某个地方少了个括号/分号。(并不一定是编译器指出错误的地方,这种情况,编译器一般会在最后一行代码报错,但错误很可能不在最后一行,要靠自己去找出来)

3、仍然是最后一个函数的最后一行报错。 但是是另外一个函数内部多了个花括号。(此为本次错误)

注意花括号的配对情况!

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值