c语言宣言和定义的一个疑惑
c语言声明和定义的一个疑惑
#include<stdio.h>
int main(void){
int a[];
printf("%d",sizeof(a));
return 0;
}
提示error C2133: 'a' : unknown size;
既然int a;是一种定义,系统会给分配空间,那么如果是定义int a[];这样一个不指定大小的int型数组,系统既然没有分配空间,是不是这条语句只是一个声明,系统对于这种定义会做一个什么样子的操作呢?
------解决思路----------------------
有聲明指標但沒有定義內容...所以編譯器之 sizeof 無法測得......
------解决思路----------------------
没赋值就是声明
#include<stdio.h>
int main(void){
int a[];
printf("%d",sizeof(a));
return 0;
}
提示error C2133: 'a' : unknown size;
既然int a;是一种定义,系统会给分配空间,那么如果是定义int a[];这样一个不指定大小的int型数组,系统既然没有分配空间,是不是这条语句只是一个声明,系统对于这种定义会做一个什么样子的操作呢?
------解决思路----------------------
有聲明指標但沒有定義內容...所以編譯器之 sizeof 無法測得......
------解决思路----------------------
没赋值就是声明