C语言的数据类型和变量

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

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.栈帧保存了函数的返回地址和局部变量

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值