首页 > 编程语言 >C语言程序设计 数据类型转换

C语言程序设计 数据类型转换

时间:2023-11-08 14:34:54浏览次数:37  
标签:类型转换 字节 int float C语言 char printf 程序设计 sizeof

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 字节



标签:类型转换,字节,int,float,C语言,char,printf,程序设计,sizeof
From: https://blog.51cto.com/emanlee/8252745

相关文章

  • C语言程序设计 练习题参考答案 第二章
    2.4C,2.5B,2.6A,2.7B,2.8C,2.9C,2.10B,2.11A,2.12D,2.13A,2.14 3,14,32,41,22.15 (1)1(2)30 (3)5.0(4)0.0(5)1......
  • C语言程序设计 绘图 画点
    C语言绘图程序,画点示例。编译环境:Win-TC或者TurboC2.0。注:不能在VC6中编译。#include<stdio.h>#include<graphics.h>voidmain(){intgraphdriver=DETECT;intgraphmode,x;initgraph(&graphdriver,&graphmode,"C:\\Win-TC");cle......
  • C语言程序设计 辗转相除法
    用辗转相除法求两个数的最大公约数的步骤如下:先用小的一个数除大的一个数,得第一个余数;再用第一个余数除小的一个数,得第二个余数;又用第二个余数除第一个余数,得第三个余数;这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那......
  • C语言程序设计 C编译器的作用
    首先举个例子。如果一个不懂英语的中国人和一个不懂中文的英国人交流,可以借助于翻译工具(或软件,比如金山词霸,金山快译,南极星等),也可以通过通过英语翻译(这里指人)来做英汉互译。当英语或中文有语法错误或者笔误时,翻译工具往往不能准确翻译,因为它不具备像人一样的智能,不能自动识别错误和......
  • C语言程序设计系列
    “C语言程序设计系列”简单地介绍C语言相关的基础知识,基本技能。没有过多地介绍深刻的原因(为什么要这样做)和相关的注意事项(哪些地方容易出错)。[1]C语言程序设计为什么要学习C语言[2]C语言程序设计C编译器的作用[3]C语言程序设计使用C-Free4.1[4]C语言程序设计使用VC6......
  • C语言程序设计 授课日历 2009春季
    2008级车辆工程(上课:周一,周三,上机:周五) 2008级印刷工程(技术)(上课:周一,周三,上机:周四)......
  • C语言程序设计教学系列
     “C语言程序设计教学系列”侧重于教学方面,提供教学资料。[1]C语言程序设计参考书籍[2]C语言程序设计撰写实验报告注意事项[3]C语言程序设计课程实施细则[4]C语言程序设计要求掌握的例题和习题[5]C语言程序设计试卷试题结构[6]C语言程序设计笔试考试,试题样卷[7]C语......
  • C语言程序设计 编号和学号对应关系 2009春季
    作业和实验报告上请写上编号,便于登记和排序。编号学号 编号学号1****331015 1****3310142****331082 2****3310203****221001 3****3310264****221002 4****3310345****221003 5****3310396****221004 6****3310467****221005 7****3310878****221006 8****3310459****221......
  • C语言程序设计 练习题参考答案 第四章 (2) 二维数组
    /*4.165*5矩阵中每行的绝对值最大值,与同行对角线交换*/#include"stdio.h"#include"math.h"voidmain(){inta[5][5]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2},{1,3,-2,4,6},{2,2,0,7,4}};inti,k,max,sub,temp;/*i循环变量,控制行,k循......
  • C语言程序设计 练习题参考答案 第四章 (3) 字符数组
     /*  例4.19 电文加密,每个字母转换为字母表中循环右移的第三个字母,解法一 */#include"stdio.h"voidmain(){chars[256];inti=0;printf("请输入一行字符,之后按回车键\n");gets(s);while(s[i]!=0){if(s[i]>=65&&s[i]<=87)/*A-W*/......