有以下定义和赋值语句中,正确的是_______ 。
A. static char str[8]="Good morning";
B. char str[20];str="Good morning";
C. char *p="Good morning";
D. char *p;*p="Good morning";
查看答案
以下叙述正确的是___________。
A. 数组名实际上是此数组的首地址,所以数组名相当于一个指针变量
B. 若定义数组 a[2][3],则a+1和*(a+1)完全相等
C. 若定义数组 a[2][3],则++a和a[1]完全等价
D. 某函数的形参为一个数组,则调用此函数时只能将数组名作为对应的实参
有这样的定义float *p[4];则下面的叙述中正确的是_______。
A. 此定义不正确,形如char *p[4];的定义才是正确的
B. 此定义正确,p是指向一维实型数组的指针变量,而不是指向单个实型变量的指针变量
C. 此定义不正确,C语言中不允许类似的定义
D. 此定义正确,定义了一个指针数组
若有以下定义语句:static int a[2][3]={1,3,5,7,9,11};int m,n;且0≤m≤1,0≤n≤2,则_______是对数组元素的正确引用。
A. a[m]+n
B. *(a+5)
C. *(*(a+m)+3)
D. *(*(a+m)+n)
有如下函数:fun(int *p1,int *p2){int *p;*p=*p1;*p1=*p2;*p2=*p;}其功能为_______。
A. 正确,但无法改变*p1和*p2的值
B. 能够成功交换*p1和*p2的值
C. 能够成功交换*p1和*p2的地址
D. 能够成功交换p1和p2的值