C语言的数据类型和变量

本文详细介绍了C/C++编程中的数据类型(有符号、无符号、内置、自定义),包括数组、结构体、枚举和联合体。讲解了sizeof操作符用于测量数据类型长度,以及变量的创建、分类和内存区域(栈、堆、静态区)。还讨论了全局变量、局部变量和栈帧的概念。

1.0数据类型

1.0.0数据类型分类

【signed 有符号 有正负   unsigned 无符号 只有0和正整数】

ps  int = signed int

      char 默认由系统决定 signed char -取值范围:  -128-127   

                                        unsigned char - 取值范围: 0-255

      

1.0.1内置类型(直接可以使用、自带)

(1)字符型( ' '  char )

(2)整型(描述整数 int  默认signed

short [ int ] 短整型

int 整型

long [ int ] 长整型

long long [ int ] 长长整型

(3)浮点型(小数)

float 单精度浮点型

double 双精度浮点型

long double

(4)布尔类型(描述真和假  (bool)   _Bool=true/false)

头文件  <stdbool.h>

1.0.2自定义数据类型

1.数组
2.结构体-struct
3.枚举-enum
4.联合体-union

1.0.1测量数据类型长度

1.计算机中常见单位

1024 = 2^10

bit -比特位 - 1个比特位存储一个二进制位(0/1)

Byte -字节- 1个Byte= 8个bit

KB - 1KB =1024 Byte

MB - 1MB =1024 KB

GB - 1GB = 1024 MB

TB - 1TB =1024 GB

 PB - 1PB = 1024 TB

······

2.常见数据类型所占存储空间

数据类型 \ 不同编译器16位编译器32位编译器64位编译器
char1 Byte
char*2 Byte4 Byte8 Byte
short int2 Byte
int2 Byte4 Byte
unsigned int2 Byte4 Byte
float4 Byte
double8 Byte
long4 Byte8 Byte
long long8 Byte
unsigned long4 Byte8 Byte
..............

3.sizeof操作符

sizeof(类型) /   sizeof 变量

ps:sizeof 里表达式不运算 == 此表达式不会影响程序结果

单位:字节

返回值:无符号数字

sizeof计算结果:size_t类型  - 只规定为无符号整数 无具体类型

2.0变量

2.0.0变量的创建

1.格式: 数据类型 变量名称

2.变量名称:变量名有意义 且只能是由字母 数字 下划线组成 不能数字开头

3.ppppps: 变量只是在该作用范围内使用

ppppps:变量切记要初始化!

int main()
{
int a=0;
char b='\0';
float c=0;
return 0;
}

2.0.1变量的分类

推测下列代码运行结果


#define PI 3.14
#define str "圆周率为"
int main()
{
	int a = 2;
	{
		int a = 3;
		printf("a1=%d\n", a);
		printf("%s %f\n",str,PI);
	}
	printf("a2=%d\n", a);
	return 0;
}

运行结果

1.全局变量:在{ }外定义  整个工程中都可以使用

2.局部变量:在{ }内定义

pppppps  :  局部变量与全局变量名称相同时 局部优先

eg. 上述代码中的 变量a 

3.内存分类

(1)栈区 :局部变量 形式参数 函数栈帧空间

(2)堆区 :动态内存管理 ( malloc  calloc realloc free)

(3)静态区:全局变量 静态变量

名 词 解 释

栈 :

是一种数据结构 只能在一端进行插入和删除操作 (按先进后出的原则存储数据)

压 栈 (push):在栈中存放数据从低到高     我理解为函数递归中的递推过程

  高地址

出 栈 (pop):拿出栈中的数据       我理解为函数递归中的回归过程

栈 帧

1.每个未运行完的函数都有一个对应的栈帧

2.栈帧保存了函数的返回地址和局部变量

根据原作 https://pan.quark.cn/s/0ed355622f0f 的源码改编 野火IM解决方案 野火IM是专业级即时通讯实时音视频整体解决方案,由北京野火无限网络科技有限公司维护支持。 主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。 详细情况请参考在线文档。 主要包括一下项目: 野火IM Vue Electron Demo,演示如何将野火IM的能力集成到Vue Electron项目。 前置说明 本项目所使用的是需要付费的,价格请参考费用详情 支持试用,具体请看试用说明 本项目默认只能连接到官方服务,购买或申请试用之后,替换,即可连到自行部署的服务 分支说明 :基于开发,是未来的开发重心 :基于开发,进入维护模式,不再开发新功能,鉴于已经终止支持且不再维护,建议客户升级到版本 环境依赖 mac系统 最新版本的Xcode nodejs v18.19.0 npm v10.2.3 python 2.7.x git npm install -g node-gyp@8.3.0 windows系统 nodejs v18.19.0 python 2.7.x git npm 6.14.15 npm install --global --vs2019 --production windows-build-tools 本步安装windows开发环境的安装内容较多,如果网络情况不好可能需要等较长时间,选择早上网络较好时安装是个好的选择 或参考手动安装 windows-build-tools进行安装 npm install -g node-gyp@8.3.0 linux系统 nodej...
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值