c语言指针问题.经int *p后,使用指针有p与*p两种方式,有何不同?

问题描述:

c语言指针问题.经int *p后,使用指针有p与*p两种方式,有何不同?
int i=1,j=2,*p,*q; p=&i;q=&j; 在经过以上操作后,执行*p=*q与p=q二者的区别?为什么第一种是将j的值赋给i,而第二种是p,q同指向j,*p=j.
1个回答 分类:综合 2014-10-16

问题解答:

我来补答
指针变量前加*号是解引用运算,通俗的将就是取得该指针所指向内存单元的值.其既可以是左值,也可以是右值.
p的值就是i的地址,*p就是这个地址的值,也就是i的值,同理*q是j的值.
所以执行*p=*q后就是将j的值赋值给i.
而执行p=q后,q的值就和q的值相等(即j的地址).*p自然就等于j.
不知道懂了没?
 
 
展开全文阅读
剩余:2000