地址是一个内存单元,其本质是一个16进制数 zhenghe 发表于 2014-7-21 22:33
如果指针是存地址的,那么指针该在哪里呢?
在定义指针变量时分配了一个内存单元,即地址,代表该指针变量。
时时刻刻将这些与内存联系起来记忆、思考会有助于你。 严格地说,一个指针是一个地址,是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。但常把指针变量简称为指针。为了避免混淆,我们中约定:“指针”是指地址,是常量,“指针变量”是指取值为地址的变量。定义指针的目的是为了通过指针去访问内存单元。(摘自谭浩强C语言)是不是把楼主位的“指针是存地址的”补充完整“指针变量是存地址的”。这样理解指针是一个地址,是一个整数就比较好理解了? Gorgon_Meducer 发表于 2014-5-19 10:46
没什么特别的
1、整数变成指针
一种茅塞顿开的感觉 指针就是个P啊 1.指针是数;
2.指针可以指向别的数。 标记一下 从计算机硬件结构上来理解就容易多了 看来C语言的功底还是很重要的 {:lol:}可以去杂志投稿了 多么痛的领悟
前面(指针)->左拐(指针)->左拐(指针)->左拐(指针)->再左拐(指针) 又是学习的机会 顶顶顶!!!!!!!!!!!!!!!!!!!!!!! 如果指针存的是指令的地址,那么*p=执行该条指令。
---------------------------------------------------------------------------
钻牛角尖,,如果p是函数指针 ,那么*p=执行该条指令????
typedef (void *callback_t)(int );
callback_t cb=serial_back;
*cb;//*p=执行该条指令????
void serial_back(int event)
{
.....
} Zigbee2012 发表于 2014-8-25 18:36
如果指针存的是指令的地址,那么*p=执行该条指令。
---------------------------------------------------- ...
*p只是说明执行p这个地址所存的指令,不是函数指针的调用方式。
真正调用函数指针时,请使用标准的C语言写法(*p)()。 gliet_su 发表于 2014-8-25 22:09
*p只是说明执行p这个地址所存的指令,不是函数指针的调用方式。
真正调用函数指针时,请使用标准的C语言 ...
的确了解比较深 ! 调用也可简写为p() 多么关键的领悟啊!!! 我觉得C语言最难得就是指针和结构体了 多么痛的领悟 指针就是存地址的 过来学习了 多么痛的领悟 指针老师说了,讲一次很多同学都听不懂,真的很难啊 理解指针,读写程序会高效很多 这么多人学习说 多么透彻的领悟 理解的灰常深刻, 大彻大悟~~~ cumtgao 发表于 2014-5-17 11:37
理解得真透彻,楼主为什么不写一本指针的书呢?
都透彻到三行字了,,,不是,你见过三行字和书吗???? 寻址方式,ram地址,rom地址三个结合来理解会比较容易吧 mark!!! 多么痛的领悟啊!!!
页:
1
[2]