1 可以不用const,例如:char aa[] = "abc";aa[0] = 'd';printf("%s\n", aa); //这里打印的结果是dbc,aa的大小是4,abc+一个\0 2 const char *aa = "abc";aa[0] = 'd'; //这个时候是错误的,因为aa是一个指针,指向一个字面常量“abc”,这个字面常量是保存在程序的全局静...
题目在C语言中对一维整型数组的正确定义为___。A)int a(10); B)int n=10,a[n];C)int n;a[n]; D)#define N 10int a[N];}运行结果为:AABCDBBCDCCDDD首先定义一个字符型数组s,并对s进行初始化; 数组s是全局变量,其有效范围从其定义开始至整个程序结束。执行main函数...
如果不初始化数组,数组元素和未初始化的普通变量一样,其中存储的是无用的数值;但是如果部分初始化数组,未初始化的元素则被设置为0; 如果初始化列表中的项目的个数大于数组大小,编译器会毫不留情地认为这是一个错误。但是用另外一种形式可以避免受到编译器的此类奚落:您可以省略括号中的数字,从而让编译器自动匹配数...
而char p[] = "ab";可表示为初始化,如您所描述的,char *p = "ab";不是,因为指针是,不是数组,并且使用数组初始化程序初始化它们会做一些完全不同的事情(即给它们第一个元素的值,在你的情况下是0x61)。 简而言之,如果适合这样做,C编译器只用char数组初始化器“替换”字符串文字,即它用于初始化char数组。