C语言数据类型
数据类型
基本类型
- 整形:
- short 2字节,int4字节,long字节
- 浮点型:
- float单精度,dobule双精度
- 字符型:
- char
整形、浮点型都有 signed和unsigned(正数)
基本类型空间大小固定
构造类型
- 数组:
- 是一组相同类型的元素的集合
- 结构体:
- 是一组不同类型的集合
- 共用体(联合体):
- 一组不同类型的元素共用一段空间
- 枚举:
- 列举某个范围内值
注意:构造类型的内存大小是不固定的,取决于程序怎么去定义
指针类型
指针类型一般来说是指针变量:
- 基本类型指针
- 构造类型指针
- 由void构成万用指针
注意:系统给指针类型的大小是固定的,具体取决于系统的位数
空类型
无值类型
- void和函数组成
- 无返回值
- 无参数
- void和指针组成:
- 通用类型指针
常亮
在程序运行过程中无法改变的量
如:1,2,3,4... A,B,C... 12345, ABC
- 定义:
- 使用 const 修饰符:
- 定义的时候赋值,之后不能赋值:const int x = 100;
#include <stdio.h> void main() { const int const_x = 200; // const_x = 200; 常亮不能修改 printf("%d\n", const_x); }
- 使用 const 修饰符:
变量
运行过程中可以被修改的量
- 变量名:
- 指向的是内存中的地址
- 命名规则:
- 只能由字母数字下划线组成,只能以下划线和字母开头
- 尽量起名做到见名知意
- 尽量驼峰命名:int minNumber;
- 代码缩进,让代码更易读
- 定义变量:
- 格式: 数据类型 变量名;
- 定义int:int x;
- 定义short,并初始赋值: short x = 10;
- 定义float: float x;
- 格式: 数据类型 变量名;
#include <stdio.h>
void main()
{
int x = 10;
x = 30;
printf("%d\n", x);
float y;
printf("%f\n", y);
}
int存储过程
-
存储二进制码
- 将数据绝对值取反+1 就是他的二进制码
-
读取数据:
- 将二进制码-1取反,就是数据值
实际系统在操作的时候最高位不会跟着变动,他表示的正负(0负数,1正数)
- 高精度向地精度数据赋值的时候只能保留低字节数据,只保留能保留的比特位。因此可能数据会丢失
int x = 65536;
unsigned short y = x;
// short是2字节,最大值是65535,int是4字节,复制时会将超出2字节的数据丢失
// 此时,y就是0,因为x往y赋值只能赋值2字节,多余的位会丢掉
print("%d", y);
- 低精度向高精度复制,直接拷贝,如果位unsigned,高字节补0,如果signed,高字节补符号位。
- 代码:
#include <stdio.h>
void main()
{
int m = 65536; // 结果:n=0
// int m = 65535; // 结果:n=65535
// int m = 65534; // 结果:n=65534
unsigned short n = m;
printf("n: %d\n", n);
}
cpu计算
- cpu从内存中获取数据,将数据存储到寄存器中进行使用。(寄存器与cpu交互速度更快)