[问题] 指标

楼主: GooLoo (平凡)   2015-06-16 21:07:27
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
请问一下
*与&最大不同是
*a : a的内容 &a : a的位址
最近在看一份范例程式,它用了很多指标,
我想了解程式内容,并用自己看得懂的方式重写
其中,
uint16_t moved_perm(uint8_t *buf)
{
uint16_t plen;
plen=fill_a(buf,0,PSTR("123"));
return(plen);
}
*buf =>动作不是很懂 ,平常写都没星号,
有人可以举例说明, 差异跟应该会得到的结果吗?
我google过, 多半看不懂, 或是只教*与&的不同,
针对函式中的参数有星号没有特别的说明
可否请高手指点, 这种参数内有指标的意义
另外buf应该是一个阵列?那可以带到函式参数内?
谢谢
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
作者: azureblaze (AzureBlaze)   2015-06-16 21:22:00
宣告中的*代表这是一个指标
作者: Raymond0710 (雷门)   2015-06-16 21:36:00
意义是让函式可以更改内存里的内容http://goo.gl/sNV1SX
作者: EdisonX (卡卡兽)   2015-06-16 23:47:00
作者: arthur104 (arthur)   2015-06-17 00:03:00
就是传buf的addr进来--> pass by reference没*就是pass by value,会copy一分到function的stack里面
作者: Feis (永远睡不着 @@)   2015-06-17 08:04:00
这里应该跟 pass by reference 无关
作者: BlazarArc (Midnight Sun)   2015-06-17 14:14:00
因为宣告跟expression中的* &意思不同宣告 T* : pointer to T, T& : reference to T表达式中的 *a : 对 a 取值(dereference), &a : 取址
作者: descent (“雄辩是银,沉默是金”)   2015-06-17 21:51:00
你应该先看书, 而不是 google

Links booklink

Contact Us: admin [ a t ] ucptt.com