C语言之指针的再次理解
来源:互联网 发布:必智软件 编辑:程序博客网 时间:2024/05/20 05:09
C语言指针的一些理解
一, 再一次理解指针的缘由是在做数据结构的题目的时候无意中的这次程序的调试,见下图,程序运行没有问题,无意之下进行了调试,遇见了这个问题。(expression cannot be evaluated无法计算表达式的值)
二, 若是一下子看不出来为何,那就还是先从指针谈起吧
什么是指针呢?我的理解是指针是一个值,和普通变量没有区别,只是指针的值是一个地址,而普通变量的值是一些我们常见的类型如int,其实都是一样的。
比如说int a,int *p,这时候你将a的地址赋给p,那你就能通过p取到a的值。
注意,指针是有指向类型的,要时刻注意指针指向类型的内存空间大小和指针本身所占空间大小的区别,下图是个示例可以看出来区别:
三,那么既然知道了这两者有区别,下面使用malloc进行内存分配也就清楚了,看下图:(注意一下注释部分)
四, 当申请的为结构体变量时,结构体变量中又有指针时,会出现什么问题呢?看下图:
请注意,上图并非是错误,是调试过程中,编译器显示的各个变量的情况。这里申请的内存,由两部分组成,一是a,b的内存大小,二是指向结构体的一个指针!
请注意与下面这幅图的区别:一个申请的是结构体变量的空间,一个是指向结构体变量指针的空间:
五,那下面的这个,估计也就知道为何了:
六,不知道看完后的你收获了什么,文中有很多理解不足之处,欢迎指点,谢谢。
1 0
- C语言之指针的再次理解
- C语言之指针的理解
- 再次理解C语言的变参
- 理解c语言的指针
- c语言指针的理解
- C语言自学之指针理解
- c语言之指针理解一
- c语言之野指针理解
- c语言之指针数组理解一
- c语言之指针数组理解二
- c语言之指针数组理解三
- c语言之多级指针理解一
- c语言之多级指针理解二
- 理解C语言指针
- 深入理解C语言指针的奥秘- -- -
- 深入理解C语言指针的奥秘
- 深入理解C语言指针的奥秘
- 深入理解c语言指针的奥秘
- [Leetcode刷题]Two Sum
- ios学习路线—Objective-C(Runtime 拾遗)
- libigl file formats
- java 动态代理
- removeAttribute与invalidate的区别
- C语言之指针的再次理解
- 我被合伙人骗了,所以我应该告诉大家这个人是谁。
- leetcode之Maximum Product Subarray
- 信用卡剩余额度计算器(Credit Limit Calculator)
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- Linux中安装arm-linux-gcc-4.4.3
- 就是贴几张图
- PostgreSQL Service
- 生产环境下 nginx 和 tomcat的调优