若有定义int a[]={11,22,33,44,55},*p=a;,则下列不表示数组元素a[2]的值的是 ( )
A. *(p+2)
B. *&a[2]
C. *(a+2)
D. *p+2
查看答案
假设有下面定义语句:float a[10];float *p=a;则p++的效果是p的值在原来基础上增加( )
A. sizeof(p)
B. 1
C. sizeof(float)
D. sizeof(a)
若有定义:int b[5], *p=b;,则不能代表b数组首地址的是()。
A. b
B. &b[0]
C. &b
D. &p[0]
int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i=1;数组元素地址的正确表示是( )
A. &(a+1)
B. a++
C. &p
D. &p[i]
以下程序有什么问题?#include #include #include int main(){ char *p; int i; p=(char *)malloc(sizeof(char)*5); strcpy(p,"welcome"); for(i=6;i>=0;i--) putchar(*(p+i)); printf("\n"); free(p);}
A. 没有问题
B. 动态申请的空间不够存储welcome这个字符串。
C. strcpy这个函数参数错误
D. free错误