第四天---数据类型
sizeof()是一个运算符,给出某个类型或变量在内存中所占据的字节数
sizeof(int)=sizeof(7)
因为sizeof只能测量int或者double。。。。的字节数,如果输入整数则和int同
类型有何不同?
自动类型转换
对于printf,任何小于int的类型会被转换成int;float会被转换为double;但是scanf不会,所以ruguoshurushort,需要%hd
强制类型转换(大的值转换为小的值,比如(int)10.2,double类型将会被强制转换成int)
#include <stdio.h> int main() { double a=3.0; double s=2.0; // int i=(int)(a/s); double i=(int)a/s; //i为整数型,(int)a为整数型,s为浮点型,最后决定是什么数据类型的因素是最前面的double printf("%f",i); return 0; }
浮点数可以表示正无穷和负无穷,但是整数型不行
#include <stdio.h> int main() { printf("%f\n",12.0/0.0); //1.#INF00 得到的是正无穷大 inf printf("%f\n",-12.0/0.0); //-1.#INF00 得到的是正无穷大 -inf printf("%f\n",0.0/0.0); //-1.#IND00 得到的是nan printf("%d\n",12/0); //报错了 return 0; }
float类型需要用f或者F后缀来表明身份,带小数点的字面量是double而不是float,例如:
double a=1.234;
float b=1.234f;
浮点的输入输出
类型 scanf printf
float %f %f,%e
double %lf %f,%e
浮点数运算的时候会有精度损失的现象, 所以在计算金钱这一类的时候买最好使用整数型,换算为分再进行计算不会出错
没有特殊运算的话,整数型用int,浮点型用double就够了
scanf不能读char变量
char是可以做运算的,根据ASCII码做运算:
#include <stdio.h> int main() { char a='A'; a++; printf("%c",a); //B return 0; }
bool类型如果想使用就得包含头文件#include<stdbool.h>,之后就可以使用bool判断是true还是false
#include <stdio.h> #include <stdbool.h> int main() { bool b=6>5; bool t=true; bool f=false; printf("%d %d %d",b,t,f); //1 1 0 return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具