c语言类型浅谈

余生颓废 提交于 2019-12-11 08:30:00

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,如此循环下去只能是无限输出了,有了现在的例子足以说明类型的重要性,小小数字的变化可能会引起大的错误。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!