题目内容

若有定义:int x[10], *p=x;,则(p+1)和*(p+2)分别表示的是( )。

A. 数组元素x[1]的地址和数组元素x[2]的值
B. 数组元素x[0]的地址和数组元素x[1]的值
C. 数组元素x[1]的值和数组元素x[2]的地址
D. 数组元素x[0]的值和数组元素x[1]的地址

查看答案
更多问题

若有定义:int a[10],*p;则与p=a;等价的语句是( )。

A. p=&a[0];
B. p=a[0];
C. p=*a;
D. *p=&a;

以下代码有何问题?#include #include #include int main(){ char *p; int i; p=(char *)malloc(sizeof(char)*20); strcpy(p,"welcome"); printf("\n"); free(p); for(i=6;i>=0;i--) putchar(*(p+i)); return 0;}

A. 没有问题
B. malloc语法错误
C. strcpy语法错误
D. putchar的时候那块空间已经被free了,这时候再访问该空间是非法的。

对于函数void * malloc(unsigned int size)而言,下面的说法中正确的是

A. void *的含义是指该指针基类型未知,若将函数调用的返回值赋值给某个指针,必须做强制类型转换,将返回的指针值转换为所需的类型。
B. void *的含义是指函数调用的返回值为指针类型,该指针为空指针,其值为NULL。
C. void *的含义是指该函数没有返回值
D. 以上说法都不对

若有定义int a[5]={1,3,5,7,9}; 则不能对a数组元素正确引用的是( )。

A. a[3]
B. *(a+1)
C. a[5]
D. a[6-3]

答案查题题库