第四天---数据类型

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;
}
复制代码

 

posted @   周周周777  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示