C语言Ⅰ_数据类型
数据类型
- char : 1 bytes
- int :4 bytes
- float:4 bytes
- double:8 bytes
基本类型书写
整数
- 默认为10进制 ,10 ,20。
- 0开头为8进制,045,021。
- 0b开头为2进制,0b11101101。
- 0x开头为16进制,0x21458adf。
小数
单精度常量:2.3f 。
双精度常量:2.3,默认为双精度。
字符型常量
用英文单引号括起来,只保存一个字符'a'、'b' 、'*' ,还有转义字符 '' 、'。
字符串常量
用英文的双引号引起来 可以保存多个字符:"abc"。
整数类型
类型 | 存储大小 | 值范围(32//64bits) |
---|---|---|
char | 1 bytes | -128 ~ 127 // 0 ~ 255 |
unsigned char | 1 bytes | 0 ~ 255 |
signed char | 1 bytes | -128 ~ 127 |
int(\(2^{15}-1\)/\(2^{31}-1\)) | 2 或 4 bytes | -32,768 ~ 32,767 // -2,147,483,648 ~ 2,147,483,647 |
unsigned int(\(2^{16}-1\)/\(2^{32}-1\)) | 2 或 4 bytes | 0 ~ 65,535 // 0 ~ 4,294,967,295 |
short(\(2^{15}-1\)) | 2 bytes | -32,768 ~ 32,767 |
unsigned short | 2 bytes | 0 ~ 65,535 |
long(\(2^{31}-1\)) | 4 bytes | -2,147,483,648 ~ 2,147,483,647 |
unsigned long | 4 bytes | 0 ~ 4,294,967,295 |
short
固定16bits,long
固定32bits,int
与机器有关。
32/64位系统储存大小的异同
浮点类型
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 bytes | \(1.2*10^{-38}\) ~ \(3.4*10^{38}\) | 6 位小数 |
double | 8 bytes | \(2.3*10^{-308}\) ~ \(1.7*10^{308}\) | 15 位小数 |
long double | 16 bytes | \(3.4*10^{-4932}\) ~ \(1.1*10^{4932}\) | 19 位小数 |
派生类型
字符串数组
C中没有单独的字符串类型,字符串储存在char
类型的数组中,每一个单元储存一个字符。
1 | char a[] = "Hello World!" |
一般在给字符串数组赋初值时,字符串末尾加
\0
,在C中表示字符串结束。因此,一般字符串数组初始化时,长度较字符数需加一。
'A'
与"A"
不同,'A'
为一个字符,无长度;"A"
由'A'
和\0
组成,长度为2。
Void类型
类型 | 描述 |
---|---|
函数返回为空 | C 中有各种函数都不返回值,或者说它们返回void。无返回值的函数的返回类型为空。例如 void exit (int status); |
函数参数为空 | C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void); |
指针指向 void | 类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。 |
枚举类型
如果一个变量只有几种可能的值,则可以定义为枚举类型;
所谓“枚举”就是把可能的值一一的列举出来,变量的值只限于列举出来的值的范围。
https://blog.csdn.net/lixiaogang_theanswer/article/details/56681227