在互联网上发现了一个很好的C++入门学习网站,用各种图表和幻灯片来学习C++知识,非常直观,一目了然,比看文字更容易理解。做个搬运工用中文分享一下C/C++最难懂的的内存指针的讲解,由浅入深的将指针解释的很清楚易懂,供初学者参考。
指针运算
1.注意:不同的类型的内存大小是不同的
2.指针仅仅是存储了一个地址
3.指针运算:递增1
4.指针运算:递减1
5.指针运算
int类型的大小等于4个char类型的大小,即4个字节。
6. 下标运算符 [ ]
p[n] = 存取值(在指针中的地址+n)
7.指针图
空指针在内存(栈内存)中的状态。
8.指向对象的指针
这里指针变量p指向变量v,即变量p的值是变量v的内存地址。
9.指向指针的指针
这个有点绕,变量v和p参考上图,变量pp是个指向指针的指针变量,其实还是个指针变量,只不过pp的值是p指针变量的内存地址,而p变量的值是变量v的内存地址。
& 后退一步
- 前进一步
这两句话的意思如下:
“ & ” 操作符为取地址操作符(注意用在变量之前,且不是变量声明定义语句,不要和引用类型符号混淆)。
“ * ” 为解引用操作符,用在指针变量上就是返回此指针变量指向变量的值,如p指向v变量,那么p则返回5。而pp由于指向的变量是p,则返回p的值0x40,**pp,先解引用一个得到p,再解引用p,即p,则返回v变量的值5。
希望文章对您有所帮助,整理不易请随手点个赞,谢谢!附上原文地址:hackingcpp.com