若有定义语句:int *p ; ,要正确执行语句q=&p; 则变量q应定义为______。
A: int q;
B: int *q;
C: int **q;
D: int *q();
A: int q;
B: int *q;
C: int **q;
D: int *q();
举一反三
- 若有定义int a, b;则用( )定义的函数,执行语句swap(&a, &b);后,变量a与b的值没有交换。 A: swap(int *p, int *q) { int *t; t=(int*)malloc(sizeof(int)); //分配4个字节的存储空间给t *t=*p;*p=*q;*q=*t; } B: swap(int*p, int*q) { int t; t=*p;*p=*q;*q=t; } C: swap(int *p, int *q) { int *t; t=p; p=q; q=t; } D: swap(int *p, int *q) { int a, *t=&a; *t=*p; *p=*q; *q=*t; }
- 有四组对指针变量进行操作的语句,以下判断正确的选项是( )。 (1)int *p,*q;q=p; int a,*p,*q;p=q=&a; (2)int a,*p,*q;q=&a;p=*q; int a=20,*p;*p=a; (3)int a=b=0,*p;p=&a;b=*p; int a=20,*p,*q=&a;*p=*q; (4)int a=20,*p,*q=&a;p=q; int p,*q;q=&p;
- 若有定义:int a=2,*p=&a,*q=p;则以下非法的赋值语句是()。 A: p=q; B: *p=*q; C: a=*q; D: q=a;
- 以下对指针变量的操作中,不正确的是( )。 A: int a, *p, *q; p=q=&a; B: int a, *p, *q; q=&a; p=*q; C: int a=6, b,*p; p=&a; b=*p; D: int a=6, *p, *q=&a; p=q;
- 定义q为一个指向int类型的变量i的常指针语句( )。 A: int * const q=i; B: int * const q=&i; C: const int *q=i; D: const int *q=&i;