数据类型介绍
- char (字符数据类型)
- short (短整型)
- int (整型)
- long (长整型)
- long long(更长的整型)
- float (单精度浮点数)
- double (双精度浮点数)
C语言类型: 1.内置类型(本身语言就有); 2.自定义类型/构造类型(自己创造的类型)
类型的意义:
- 1.使用这个类型开辟空间的内存大小(大小决定了使用范围)。
- 2.如何看待内存空间的视角
整型家族
- char
- unsigned char(没有正负之分)
- signed char(第一个是0就是正数,1就是负数)
- short
- unsigned short[int]
- signed short[int]
- int
- unsigned int
- signed int
- long
- unsigned long[int]
- signed long[int]
浮点型家族
- float
- double
构造类型
- 数组类型 (int[10]和int[5]不是一种类型)
- 结构体类型 struct
- 枚举类型 enum
- 联合类型 union
指针类型
- int* pi;
- char* pc;
- float* pf;
- double* pd;
- void* pv;
指针类型所创建的变量特点是: 大小统一,目的是为了存放地址
空类型
void表示空类型(无类型); 常用于函数的返回值、函数的参数、指针类型。
#include "stdio.h"
void test(){
printf("hehe\n");
}
int main(){
test(100);
return 0;
}
并没有需要参数,却没有报错。
C语言在设计之初的时候,形参什么都不写的时候,你传参可以,不传参也可以
后来给个解决方案: 你如果想明确写出,函数不需要参数,你可以写
void test(void)
。程序还是执行起来了,但是会提示警告
数
原码、反码、补码
计算机中
有符号
有三种表示方法: 即原码
,反码
,补码
三种表示方法均有
符号位
和数值位
俩部分,符号位都是0表示正
;用1表示负
。而数值位三种表示方法个不相同
原码
直接将二进制按照正负数的形式翻译成二进制就可以
反码
将原来的符号位不变,其他位依次按位取反就可以得到了。
补码
反码+1就得到补码
正数的原、反、补码都相同。
对于整型来说: 数据存放内存中其实存放的是补码。
在计算机中,数值一律用补码来表述和存储,原因在于: 使用补码可以将符号和数值域统一处理,同时,加法和减法也可以统一处理[CPU只有加法器]此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。