在c语言中指针*q=&a和q=&a和*q=*a各自是什么意思 5

 我来答
守望海之依赖
推荐于2017-06-16 · TA获得超过177个赞
知道答主
回答量:55
采纳率:0%
帮助的人:23.5万
展开全部
先说一下这几个运算符的意思:*在定义变量的时候作用是声明这是一个指针变量,再其它地方是用来寻址的;&是取地址运算符,可以获取一个变量在内存中的地址;
然后说你提到的这三句话:
*q=&a
这句话应该是出现在定义变量q的时候,可以这样写:
int a;
int *q = &a;
这里,*的作用是声明q是一个指针变量,&的作用就是把a的地址取出来,通过赋值号“=”,赋给指针q;
q=&a
这句话是出现在定义变量之后的,可以这么写:
int a;
int *q;
q = &a;
这里q已经在定义时被声明过是一个指针变量了,在使用的时候不需要附带*,这句话的意思也是把a的地址赋给指针q;
上边这两句的效果其实是一样的。
*q=*a
这样的话,q和a这两个变量就都是指针变量了,这里的*不代表“声明”,而是“指向”,意思是把a指向的那个变量的值赋值给q指向的那个变量;这么说吧,如果有这样的定义:
int x = 2,y = 3;
int *a,*q;
a = &x;
q = &y;
到这里为止,定义了两个整型变量xy和两个指针aq,a指向x,q指向y;
*q = *a;
执行完这句之后,q指向的值,也就是y的值,已经等于了a指向的值,即y这个时候也等于2了。
草履虫在跑步
2012-06-16 · TA获得超过212个赞
知道答主
回答量:42
采纳率:100%
帮助的人:19.4万
展开全部
“&”是取地址操作符,“*”是间接引用操作符,他们是对应的。“*q=&a”,说明q至少是二维指针,q所指向的一维指针用来存放a的地址;“q=&a”,说明q是指针,他存放了a地址;“*q=*a”,说明q和a都是指针,这操作是把a所指向的变量的值赋给q所指向的变量(就是说如果a指向变量b,q指向变量c,那么那句话的意思就是c=b)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千寻只为爱你
2012-06-14 · TA获得超过117个赞
知道答主
回答量:43
采纳率:0%
帮助的人:26.8万
展开全部
*q=&a 出现在指针定义中,即q是指向a的指针;
q=&a 指针q指向a的地址;
*q=*a,两指针相等,指向同一个元素,由于a为数组,数组名表示首元素的地址,即*q=*a=a[0](一维数组)=a[0][0](二维数组)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-08-08
展开全部
代码不全, 无法判断, 这要看你的q和a是怎么定义的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式