zoukankan      html  css  js  c++  java
  • C语言程序设计 数据类型转换

    C语言规定,不同类型的数据需要转换成同一类型后才可进行计算,在整型、实型和字符型数据之间通过类型转换便可以进行混合运算(但不是所有类型之间都可以进行转换) .

    当混合不同类型的变量进行计算时,便可能会发生类型转换 .
    相同类型的数据在转换时有规则可循:
    字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) .
    short型转换为int型(同属于整型).
    赋值时,一律是右部值转换为左部类型.

    另外,

    当整型数据和双精度数据进行运算时,C先将整型数据转换成双精度型数据,再进行运算,结果为双精度类型数据.
    当字符型数据和实型数据进行运算时,C先将字符型数据转换成实型数据,然后进行计算,结果为实型数据.

    示例程序, 测试环境VC6

    /*  C语言数据类型转换 Data Type Conversion in C Programming Language */
    #include <stdio.h>
    void main()
    {
        int int1 = 1;
        unsigned unsigned1=2;
        short short1=1;
        char char1 = 'a';
        long long1=1L;
        float float1 = 2.0F;
        double double1 = 3.0L;

        printf("\n各种数据类型的数据占用的内存空间:\n");
        printf("sizeof(int):%d 字节\n",sizeof(int1));
        printf("sizeof(unsigned):%d 字节\n",sizeof(unsigned1));
        printf("sizeof(short):%d 字节\n",sizeof(short1));
        printf("sizeof(char):%d 字节\n",sizeof(char1));
        printf("sizeof(long):%d 字节\n",sizeof(long1));   
        printf("sizeof(float):%d 字节\n",sizeof(float1));
        printf("sizeof(double):%d 字节\n",sizeof(double1));

        printf("\n同类型数据间进行运算:\n");
        printf("sizeof(int+int):%d 字节\n",sizeof(int1+int1));
        printf("sizeof(unsigned+unsigned):%d 字节\n",sizeof(unsigned1+unsigned1));
        printf("sizeof(short+short):%d 字节\n",sizeof(short1+short1)); /* 转换为 int */
        printf("sizeof(char+char):%d 字节\n",sizeof(char1+char1)); /* 转换为 int */
        printf("sizeof(long+long):%d 字节\n",sizeof(long1+long1));
        printf("sizeof(float+float):%d 字节\n",sizeof(float1+float1));
        printf("sizeof(double+double):%d 字节\n",sizeof(double1+double1));

        printf("\n不同类型数据间进行运算:\n");
        printf("sizeof(int+unsigned):%d 字节\n",sizeof(int1+unsigned1)); /* 转换为 int */
        printf("sizeof(int+char):%d 字节\n",sizeof(int1+char1)); /* 转换为 int */
        printf("sizeof(int+long):%d 字节\n",sizeof(int1+long1)); /* 转换为 long */
        printf("sizeof(int+float):%d 字节\n",sizeof(int1+float1)); /* 转换为 float */
        printf("sizeof(char+float):%d 字节\n",sizeof(char1+float1)); /* 转换为 float */
        printf("sizeof(float+double):%d 字节\n",sizeof(float1+double1)); /* 转换为 double */
    }

     

    运行结果

    各种数据类型的数据占用的内存空间:
    sizeof(int):4 字节
    sizeof(unsigned):4 字节
    sizeof(short):2 字节
    sizeof(char):1 字节
    sizeof(long):4 字节
    sizeof(float):4 字节
    sizeof(double):8 字节

    同类型数据间进行运算:
    sizeof(int+int):4 字节
    sizeof(unsigned+unsigned):4 字节
    sizeof(short+short):4 字节
    sizeof(char+char):4 字节
    sizeof(long+long):4 字节
    sizeof(float+float):4 字节
    sizeof(double+double):8 字节

    不同类型数据间进行运算:
    sizeof(int+unsigned):4 字节
    sizeof(int+char):4 字节
    sizeof(int+long):4 字节
    sizeof(int+float):4 字节
    sizeof(char+float):4 字节
    sizeof(float+double):8 字节

  • 相关阅读:
    转:Windows 7下安装CentOS双系统
    STL学习总结之<迭代器>
    转:linux静态库与动态库
    指向类成员和成员函数的指针
    STL学习总结之<仿函数>
    转:Linux Crontab 定时任务 命令详解
    转: 解决 Redhat 出现”This system is not registered with RHN”更新
    IOS 判断设备屏幕尺寸、分辨率
    IOS 文件管理共通函数整理
    IOS 编译ffmpeg For SDK6.1,模拟器、armv7、armv7s均可使用
  • 原文地址:https://www.cnblogs.com/emanlee/p/1397493.html
Copyright © 2011-2022 走看看