数组定义时方括号内不能使用变量,好像是数组在编译时就要分配内存之类的,不确定大小无法分配内存;
定义完成之后可以使用变量调用数组的值。
这就是声明、定义、初始化、赋值的含义区别了,你肯定是想,数组中的个数肯定是要常量表达式的,其实这个常量表达式的含义仅仅适用于数组定义,举个例子来说明这4个术语的区别,
例如定义一个数组,int arr[7];有类型名,有变量名,写到这一步叫定义,简化又叫声明,我为啥写个简化?因为这一步叫定义,又叫定义式声明,声明和定义的区别在于,声明分为两种,定义式声明和引用式声明,看到存储类别时就知道什么叫引用式声明了,例如用了extern。
再接一步,int arr[7]={1,2,3,4,5,6,7};比之前多了赋值符号和一些值,这种在定义变量时进行赋值的叫初始化;
可以分开写,int arr[7]; arr[7]={1,2,3,4,5,6,7};这两步其实和上面初始化的效果一样,重点在第二步写的,只有变量名和赋值,没有类型名,这步叫做赋值;
数组定义和赋值的区别在于,数组的定义是 个数必须是常量表达式,不能是变量(除非是变长数组),而赋值的时候方括号中的值可以是变量,只要经过运算后是个整型数值即可
其实就是最后一段话,前面只是为了区别几个术语罢了