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位系统储存大小的异同

x86-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