C语言中的基本类型
//有符号类型 signed
char; //1byte
short; //2byte
int; //4byte
long int ; //4byte
long long; //8byte
//无符号类型
unsigned char; //1byte
unsigned short; //2byte
unsigned int; //4byte
unsigned long int; //4byte
unsigned long long; // 8byte
//浮点型
float; //4byte
double; //8byte
long doube; //c11 12byte//c99 8byte
//布尔型 //c语言中可能会用到#include<stdbool.h>头文件
bool; //1byte false true;
//空类型
void; //不能定义变量,可以定义指针
#include<stdio.h>
int main()
{
printf("char型变量的大小为%d", sizeof(char));
printf("short型变量的大小为%d", sizeof(short));
printf("int型变量的大小为%d", sizeof(int));
printf("long int型变量的大小为%d", sizeof(long int));
printf("long long型变量的大小为%d", sizeof(long long));
printf("unsigned char型变量的大小为%d", sizeof(unsigned char));
printf("unsigned int型变量的大小为%d", sizeof(unsigned int));
printf("unsigned long int型变量的大小为%d", sizeof(unsigned long int));
printf("unsigned long long型变量的大小为%d", sizeof(unsigned long long));
printf("float型变量的大小为%d", sizeof(float));
printf("double型变量的大小为%d", sizeof(double));
printf("long double型变量的大小为%d", sizeof(long double));
printf("bool型变量的大小为%d", sizeof(bool));
return 0;
}
在了解了这方面的知识后可以很轻松的解决魔鬼数字127的问题
int main()
{
char ch=0;
for (;ch < 200;ch++)
{
printf("%d", ch);
}
}
比如这个会输出
在了解了类型之后会很轻松的解决这个问题,应为char是1byte当二进制数增加到0111 1111是屏幕将打印出127之后ch++对应的二进制会变为1000 000当用%d打印的时候会进行一个扩充所以打印出的数字就是-128,如此循环下去只能是无限输出了,有了现在的例子足以说明类型的重要性,小小数字的变化可能会引起大的错误。