打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C语言之指针的再次理解

编程语言学习-C语言

C语言指针的一些理解

感觉自己的IQ实在堪忧,学到现在的C语言,到现在这个基础问题还不理解,今天,特地总结了一下,以便更好地理解记忆,以后继续补充

一, 我再一次理解指针的缘由是在做数据结构的题目的时候无意中的这次程序的调试,见下图,程序运行没有问题,脑残之下进行了调试,从而一发不可收拾。(expression cannot be evaluated无法计算表达式的值)

二, 若是一下子看不出来为何,那就还是先从指针谈起吧

什么是指针呢?我的理解是指针是一个值,和普通变量没有区别,只是指针的值是一个地址,而普通变量的值是一些我们常见的类型如int,其实都是一样的。

比如说int a,int *p,这时候你将a的地址赋给p,那你就能通过p取到a的值。

注意,指针是有指向类型的,要时刻注意指针指向类型的内存空间大小和指针本身所占空间大小的区别,下图是个示例可以看出来区别:

三,那么既然知道了这两者有区别,下面使用malloc进行内存分配也就清楚了,看下图:(注意一下注释部分)

四, 当申请的为结构体变量时,结构体变量中又有指针时,会出现什么问题呢?看下图:

请注意,上图并非是错误,是调试过程中,编译器显示的各个变量的情况。这里申请的内存,由两部分组成,一是a,b的内存大小,二是指向结构体的一个指针!

请注意与下面这幅图的区别:一个申请的是结构体变量的空间,一个是指向结构体变量指针的空间:

五,那下面的这个,估计也就知道为何了:

六,不知道看完后的你收获了什么,文中有很多理解不足之处,欢迎指点,谢谢。

C/C++新手交流群 :397670745

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
深入学习C语言指针和内存管理(堆的分配和释放需要手动完成而栈的分配和释放由编译器自动完成)
C语言入门教程-指针基础
C 引用和指针的区别
数组和指针的区别
指针用法
C++中引用与指针的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服