若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是()。
A. p=q; B. *p=*q; C. a=*q; D. q=a;
A)把q的地址赋给p,则p和q完全一样了,都指向一个数2 B)把q中数据给p c)把q中数据给a d)a中数据是2,不能够给一个地址。除非*q=a;
【答案】:D
【解析】:所谓...
用户登录可进行刷题及查看答案
【解析】:所谓指针是一种特殊的变量,它存放的是另一个简单变量、数组等的地址。由计算机组成原理可知,内存的每一个存储单元都对应一个地址,CPU正是通过这个地址来访问每个存储单元的。而变量名最终仍要翻译成地址,才能找到所对应的真正的存储单元,进行读/写操作。当定义了一个指针后,对这个指针变量进行使用时,可以简单的理解为:加*后,对应一个数(变量值),不加*,对应一个地址。所以:当由如下定义:
int a, *p, *q, b;
可以进行如下的赋值操作,类型才能兼容。如:
p=&a; q=p; *q=5; q=&b; a=b; b=*p;
本题中,x为简单变量,p为指向一个变量的指针,类型不兼容。应为:q=&x;
登录后提交答案