已有声明int x=0,*p;,则下列赋值表达式正确的是。
A. p=x;
B. *p=*x;
C. &p=&x;
D. p=&x;
查看答案
设变量定义为int d[]={1,2,3,4,5,6,7,8,9,10},*p=d,i;,若要输出数组中的每个元素,正确的语句是。
A. for(i=0;i<10;i++) printf("%d",*p++);
B. for(i=0;i<10;i++) printf("%d",(*p)++);
C. for(i=0;i<10;i++) printf("%d",*++p);
D. for(i=0;i<10;i++) printf("%d",++*p);
设有说明int x[ ]={1,2,3,4,5},*p=x;下列语句中输出值不是5(数组元素个数)的是。
A. printf("%d\n",sizeof(x)/sizeof(int));
B. printf("%d\n",sizeof(x)/sizeof(x[0]));
C. printf("%d\n",sizeof(p)/sizeof(int));
D. printf("%d\n",sizeof(x)/sizeof(1));
如有以下程序段:int *p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为。
A. 12
B. 11
C. 10
D. 编译出错
下列关于指针的运算中,是非法的。
A. 两个指针在一定的条件下,可以进行相等或不等的运算
B. 可以将一个空指针赋值给某个指针
C. 一个指针可以加上两个整数之差
D. 两个指针在一定条件下可以相加