为何c中inta=3;不等同于stringa=3;?
发布网友
发布时间:2023-07-17 14:13
我来回答
共1个回答
热心网友
时间:2024-11-24 12:36
C是不正确的。
原因是这样的,C语言中变量的定义和声明的区别就是定义会为变量分配实际的存储空间,而声明不是这样。变量的声明看到的一般是在a.c 文件中声明一个全局变量 int a; 然后为了在b.c中使用这个变量需要extern int a;另外一种情况就是函数定义或函数声明中的形参。 其他情况见到的都会为变量分配实际的存储空间的,常见的就是 int num; float b[3];这种形式了。
既然要为变量分配存储空间,自然的事情是编译器需要知道这个变量的大小了,它到底占几个字节,如果一个变量的大小是不确定的,自然编译器不知道该为它分配多少存储空间了,这样在编译器会报告语言错误的。因此看看上面哪个变量的大小是未知的就行了,一看就是C了,因为string数组的大小是不确定的。