指针的赋值问题

有四组对指针变量进行操作的语句,以下判断正确的选项是()int*p,*q;q=p;inta,*p,*q;p=q=&a;inta,*p,*q;q=&a;p=*q;inta=... 有四组对指针变量进行操作的语句,以下判断正确的选项是( )
int *p,*q; q=p;
int a,*p,*q; p=q=&a;
int a,*p,*q; q=&a; p=*q;
int a=20,*p; *p=a;
int a=b=0,*p; p=&a; b=*p;
int a=20,*p,*q=&a; *p=*q;
int a=20,*p,*q=&a; p=q;
int p,*q; q=&p;

请帮我分析下上面这题 具体点 还有能不能告诉我一个C语言 新手的交流群 谢谢
展开
 我来答
x120765121
2018-01-22 · TA获得超过701个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:46.5万
展开全部
指针是个存着地址的变量,因为我们每定义一个变量,内存就会给他分配空间,那么每个变量必须会有一个存储他的地方,我们称为地址,他指向谁,里面就存着谁的地址。如题*p=a;
此时p里面存的是a的地址(记住这一点),还可以用取地址符&获取变量的地址,如&a;表示的是a的地址。变量的值可以用*号获取。* 后面加一个地址,表示这个地址里面的数值(也记住,很重要)

定义3个原则
A * 后面只能跟地址, *p 表示参数的值
B &后面只能跟变量。 &a 表示参数a的地址
C ’=‘ 是赋值,为了程序的稳定,我们默认只允许同类型的参数进行赋值(若不同类也会赋值,但是执行结果会出错)
就是说,只允许,指针地址赋值给指针地址,变量值赋值给变量值。了解这些,就可以分析了:
int *p,*q; q=p; //对的,因为p,q都是指针,可以相互赋值 依据 A,C原则
int a,*p,*q; p=q=&a;//对的,p,q指针表示地址,根据B原则,&a也是地址,因此可以进行赋值
int a,*p,*q; q=&a; p=*q;//错的,q =&a 是对的,但是p =*q 是错的,根据原则A,C,*q是值,p是地址,与原则C冲突
int a=20,*p; *p=a;// 对的,他们都表示值
int a=b=0,*p; p=&a; b=*p;//对的,p = &a 原则BC ,b = *p 原则AC
int a=20,*p,*q=&a; *p=*q;// 对的,初始时q得到a的地址,*p和*q都是表示值,符合原则C
int a=20,*p,*q=&a; p=q;//对的,原则BC
int p,*q; q=&p;// 对的,原则BC

祝你进步,指针自己琢磨下,会明白的!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式