基本数据类型:
数据类型种类: | 英文 | 32位系统所占字节数 | 64位系统所占字节数 | 格式控制符 |
字符类型 | char | 1 | %c/%hhd | |
无符号字符类型 | unsigned char | 1 | %hhu | |
短整型 | short | 2 | %hd (hàhalf) | |
无符号短整型 | unsigned short | 2 | %hu | |
整型 | int | 4 | %d | |
无符号整型 | unsigned int | 4 | %u | |
长整型 | long | 4 | 8 | %ld |
无符号长整型 | unsinged long | 4 | 8 | %lu |
长长整型 | long long | 8 | %lld | |
无符号长长整型 | unsigned long long | 8 | %llu | |
单精度浮点型 | float | 4 | %f | |
双精度浮点型 | double | 8 | %lf | |
布尔类型 | bool | 1 | %hhd |
注意:
1、可以使用sizeof去计算数据类型或者变量所占字节数
测试代码:
#include <stdio.h>
int main()
{
char a = 'r';
printf("%u\n", sizeof(char)); //测试char类型所占字节数
printf("%u\n", sizeof(a)); //测试变量a所占字节数
printf("%u\n", sizeof(unsigned char)); //测试unsigned char类型所占字节数
printf("%u\n", sizeof(int)); //测试unsigned char类型所占字节数
return 0;
}
注意:
- sizeof使用
在64位系统:
printf("%lu\n", sizeof(char));
32位系统:printf("%u\n", sizeof(a));
printf("%u\n", sizeof(char));
2、使用布尔类型要加头文件 #include <stdbool.h>
bool a = 1; <==>bool a = true;
bool a = 0; <==>bool a = false;
布尔类型变量的值,非0则为真
printf("%u\n", sizeof(bool)); //1
bool b = true;
printf("%hhd\n", b); //1 真
b=false;
printf("%hhd\n", b); //0 假
b=100;
printf("%hhd\n", b); //1 真
b=1;
printf("%hhd\n", b); //1 真
b=0;
printf("%hhd\n", b); //0 假
3、浮点型
float、double默认保留6位小数,第七位会四舍五入
float b = 1.123456789;
printf("%f\n", b); //
double c = 1.123456789;
printf("%lf\n", c); //
4、计算机内存存储的数据都是二进制数,如何存储字符,把每个字符都设置一个编号(ASCII码),如果要输出字符必须要用%c,输出对应的整数%hhd
总的字符的个数:128个字符
'A' == 65
'a' == 97
'0' == 48
%c输出字符类型变量的对应字符
%hhd输出字符类型变量里面对应的整数
查找ASCII码表:使用命令man ascii
#include <stdio.h>
#include <stdbool.h>
int main()
{
//char a = 'r'; //等价于:
char a = 114;
printf("%c\n", a); //把变量a里面的二进制数作为ASCII码值,
//在ASCII码表里面找到对应的字符,把它显示到屏幕
printf("%hhd\n", a); //把变量a里面的二进制数转化为十进制数输出
printf("%c\n", 'a'+5); // printf("%c\n", 97+5);
char b=0;
printf("%hhd", b); //0
b = '0';
printf("%hhd", b); //48
b='\0';
printf("%hhd", b); //0
return 0;
}