c语言变量建模,C语言内存四驱模型

一、数据类型的本质

1、数据类型可以理解为创建变量的模具,是固定内存大小的别名。

2、数据类型的作用:编译器预算对象(变量)分配内存空间大小

二、void

1)、void简介

void 的字面意思是“无类型”,void*则为“无类型指针”,void *可以指向任何数据类型。在c中不存在void类型的变量,因为c语言就没有定义void究竟是多大内存的别名。c语言中void有两种使用方式:

1、用于修饰函数的返回值和函数参数,仅表示无,如果一个函数没有返回值,怎将其声明为void,如果没有参数,应该声明

其参数为void

2、用于数据类型的封装,例如: int InitHardEnv(void **handle)

2)、void指针的意义

c语言规定只有相同数据类型的指针才可以相互赋值,因此void*指针作为左值用于“接收”任意类型的指针。void*指针作为右值赋值给其他指针时,需要进行强制类型转换。

三、变量

1)、概念:

既能读又能写的内存对象,我们称为变量;一旦初始化后不能修改的对象我们称之为常量。

2)、变量的本质

a、程序通过变量来申请和命名内存空间,例如:int a =0 。程序通过变量名访问内存空间(变量名实质是

一段连续内存空间的别名)

在 c/c++ 中我们将运行时数据,分为四个区域分别是:栈区,堆区,数据区,代码区。我们详细来介绍下:

栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量值等

堆区(heap)一般由程序员分配与释放(动态内存申请与释放),若程序员不释放,程序结束后可能由操作系统进行回收

全局区(静态区)(static)

全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量在一块区域,未初始化的

全局变量和未初始化的静态变量在相邻的另一块区域,该区域在程序结束后由操作系统释放。

常量区字符串常量和其他常量的存储位置,程序结束后由操作系统进行释放

程序代码区  存放函数体的二进制代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值