c

本文深入探讨了C语言中的存储区分类,包括栈、堆、全局区等,并详细解释了静态作用的三个主要特点。同时,通过对比基本数据类型变量、结构体变量、指针变量等在内存中的不同表示,帮助读者更好地理解C语言内存管理。
摘要由CSDN通过智能技术生成
一般认为在c中分为这几个存储区 

1栈 - 有编译器自动分配释放 

2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 

3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束释放 

4文字常量区--专门放常量的地方,比如字符串常量。 - 程序结束释放 

5代码区 存放程序代码
 
----Static作用
1)隐藏,所修饰的对象(变量或者函数)只能在本文件使用
2)所修饰的变量初始化为0x00
3)所修饰的变量在静态存储区分配,程序结束时释放
 
 
区别:基本数据类型变量,结构体变量,指针变量,类变量(delphi)
基本数据类型变量:是栈一块内存的别名,该内存的内容是值。
结构体变量:是堆中一个内存的别名,该内存的的内容是该值。
类变量(对象):是栈中分配的内存,该内存的内容是一个对象的指针,因为sizeof(类变量)=4。
指针变量:是一个内存的别名,该内存的内容是一个地址。
静态数组名:???不能真正理解
动态数组名:是一个数组的指针
技巧:可以根据sizeof() 看看占用内存,判断该变量名称代表什么意思;引用,是内存块的一个别名,结构体变量是一个引用。
 
* 的意义: 基类型 *变量名 ----定义一个指针变量,*后面的变量存放的是该基类型变量的地址。  
                  “ *变量名 ”单独使用时,表示取地址所指向的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值