【回眸】 C语言常见报错及原因
代码和报错如上
报错1:error:'xxx’redeclared as different kind of symbol
a重声明成一个不一样的类型
此时 说明a被重声明了,说明这里a被声明了两次,
那么问题在哪里呢?实际上是因为代码的大括号里出现了两次对a的声明
报错2:array index XX is past the end of the array
代码和报错如上
如果遇到这个,具体是啥原因导致的呢?
发现这里定义了a[10],但实际上我们的数组最大只有a[9],所以后面定义的a[10]超出了范围
这个和编译器也有关系,如果使用gcc编译器的话,是无报错,并且最后结果是0的。
如果电脑是32位的,那么地址的大小是4 ,int型也是4,如果是64位,则int型的是4,地址大小是8,如上图所示。
报错3:error:expected expression before ']'token
如果遇到这样的报错,这说明需要检查一下改行的数组,不需要加中括号
编译没有报错,但结果不应该是这样,检查了一下发现问题
这里的%p后面应该是b,%x后面应该是取地址a。