printf("%s\n", aa); //这里打印的结果是dbc,aa的大小是4,abc+一个\0 2 const char *aa = "abc";aa[0] = 'd'; //这个时候是错误的,因为aa是一个指针,指向一个字面常量“abc”,这个字面常量是保存在程序的全局静态数据区,不可更改,默认就是const的,所以char *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函数...
使用const来创建符号常量(const double PI = 3.14159),数组常量(const mars [3] ={1,2,3}),指针常量int * const p=&a;,以及指向常量的指针const int * p=&a;(const int a=3;)。 1)指针变量 int * p = &a; 2)指针常量 int * const a = &b; 这里的a 是个指针常量它指向变量b的地址,不...
而char p[] = "ab";可表示为初始化,如您所描述的,char *p = "ab";不是,因为指针是,不是数组,并且使用数组初始化程序初始化它们会做一些完全不同的事情(即给它们第一个元素的值,在你的情况下是0x61)。 简而言之,如果适合这样做,C编译器只用char数组初始化器“替换”字符串文字,即它用于初始化char数组。