C语言中的数组为什么不可赋值给另一个数组?
因为数组为指针常量,如 int a[]; int b[]; b = a; 是错误地,因为 int a[] 是 int * const a, int b[] 是 int * const b,一个指针常量不可以被另一个指针常量修改(地址常量不可以被修改)。
数组的初始化,除了遍历赋值,还可以怎么被赋值?
数组在全局变量时,int可以被编译器赋值为0;作为局部变量时,需要进行赋值进行初始化,否则会出现奇怪的数字。
局部变量 int a[10] = {0}; int a[10] = {1}; int a[10] = {[2]=3,4,[5]=8} 是缺省的赋值,其他值为0。