取地址运算符和指针运算符

自学C语言,借别人的程序看,看到指针这一部分使用搞不太清楚,最近模糊的有点心得,请高手指评一下。unsignedchardataConvert(uchar*dataP,u... 自学C语言,借别人的程序看,看到指针这一部分使用搞不太清楚,最近模糊的有点心得,请高手指评一下。
unsigned char dataConvert(uchar *dataP , uchar len , uint *resultP){}//这是一个函数
if(dataConvert(&modItem[2] , (imodItemLen - 2) , &iTmpItem) == ERROR)//这是这个函数被调用的语句。
有几个结论,请帮忙看看对不对:
1.按照我的理解,&iTmpItem和*resultP应该是通过指针运算变成了一个变量;2.resultP实际上是(指向了一个)地址,这个地址中存的内容是真正数据所放位置的地址;
3.假如iTmpltem是真正的数据,那么&iTmpltem是数据的地址;
4.在这里虽然resultP和&iTmpltem都是地址,但是两者是不相等的;
5.*resultP是地址resultP中所存放的地址的位置,在这里.*resultP和&iTmpltem是等价的。
展开
 我来答
sirenblueb5
2012-08-07 · TA获得超过482个赞
知道小有建树答主
回答量:344
采纳率:0%
帮助的人:451万
展开全部
1、你可以这么理解吧⋯⋯其实所谓指针,同样可以视为变量。这里uint *resultP解读作(uint *)resultP,也就是一个指针类型的变量,该变量名叫做resultP,它的类型是一个指向无符号整数的指针。
2、是的,你的理解正确。
3、理解正确。
4、理解有误。这里的resultP是定义函数时的参数,而&iTmpItem则是在调用函数时传递进去的参数。在你调用dataConvert(&modItem[2] , (imodItemLen - 2) , &iTmpItem)时,参数resultP的值就是&iTmpItem。打个比方,假设你定义了一个函数y=f(x),然后你计算y=f(a)的值,那么在你计算的时候,x=a。
5、不是。*resultP是resultP所指向的内容,是一个整数;而&iTmpItem是指向整数iTmpItem的指针。在你调用函数dataConvert时,你可以说resultP和&iTmpItem等价,或者*resultP和iTmpItem等价。
xingyunbuzui
2012-08-07 · TA获得超过1160个赞
知道小有建树答主
回答量:346
采纳率:100%
帮助的人:386万
展开全部
4.在这里虽然resultP和&iTmpltem都是地址,但是两者是不相等的;
resultP和&iTmpltem都是指向同一个内存地址,两个代表的地址值是完全相等。

5.*resultP是地址resultP中所存放的地址的位置,在这里.*resultP和&iTmpltem是等价的。
"在这里.*resultP和&iTmpltem是等价的。"=>在这里. *resultP 和 iTmpltem是等价的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式