C-一级指针简单理解
两个关键符号
&
: 取内存地址符*
: 取内存值符
指针的操作规律
1.声明的时候是往里放地址 int *p = &num,
2.直接拿的时候就是直接操作地址内的值 *p = 10;
在 C 中操作地址就可以操作值,就跟 java 中两个引用类型拿到引用可以操作内一个对象一样。
1 | 变量名 内存地址 值 |
指针存放的是 a 的内存地址,&p则是自己的内存地址 [0x24aa34]
创建一个针指并使用
1 | void main() { |
分析过程:
根据拿到的直址 分别查看 &num,和 &p。&num 的地址以 带符号 4字节查看是100。
查看&p 的地址,以十六进制查看,因为存的是 &num 的地址。并不是实际的值。这就证明了指针变量存的是地址。
当程序再往下走 *p = 10 时,再回头看 &num 的值,已经变红,修改成了10。
传递指针
1 | void main() { |
需要注意的是C当中的方法形参使用的是变量副本机制,也就是说,方法形参也是有个自己的内存地址。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人话翻译机!
评论