指针入门(三)

指针和内存

c程序在编译后,主要有3种使用内存的方式:

(1)静态/全局内存:这里的变量在程序开始时分配,程序终止内存消失。所有函数都能访问全局变量,静态变量的作用域则局限在定义该变量的函数内部。

(2)自动内存:主要在函数内部声明,函数在调用时才创建,声明周期与被调用函数一样短暂。

(3)动态内存:对上分配内存,根据需要创建和释放,释放后即会消失。指针引用分配的内存,作用域局限在引用内存指针。

指针主要用来操作内存中的数据,理解内存的分区和组织方法更容易弄清指针如何操作内存。

 

指针的基本概念:

(1)指针变量:内存中别的变量、对象或函数的地址。

(2)指针对象:内存分配函数(malloc)分配的内存。

(3)指针的类型:通常根据指针所致的数据类型进行声明。

(4)指针对象:可以是任何合法的C数据类型,基本类型或合成类型等。

(5)指针本身:不包含所引用数据类型信息,只包含地址。


指针的用途:

(1)动态内存分配

(2)传递数据结构

(3)作为参数传递给函数

(4)作为返回数据的类型

(5)高效访问数组

(6)更容易访问合成数据类型


指针的缺点(空针错误):

(1)访问数组和其他结构时越界

(2)自动变量消失后被引用

(3)堆上分配的内存释放后被引用

(4)内存分配前解引指针

 

posted @   叕叒双又  阅读(235)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示