c语言常量和类型转换
c语言
06
1常量
常量就是程序执行过程中不发生改变的量
常量分为整型常量、实型常量、字符常量和字符串常量
可以参考之前的变量,如整型1:1 实型:1.1 字符:a
字符串:"apple"
常量的输出方式和变量是一样的
字符串的输出是: printf("apple");
常量的定义格式是: #define 标识符 常量值
比如 #define A=1;
变量的值在程序运行中是可以被修改的,而常量不可以被修改
变量的标识符一般用小写字母,常量用大写字母,加以区分
2自动类型转换
不同数据类型运算的时候,可以在编译中自动完成类型转换的就是自动类型转换
字节小的类型可以向字节大的类型自动转换
但是字节大的不能像字节小的自动转换
字节小的类型就像一个小瓶子,字节大的类型就像一个大瓶子
小瓶子能装的,大瓶子也可以。但是大瓶子能装的,小瓶子不一定可以
自动转换遵循以下规则:
1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2、转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
a.若两种类型的字节数不同,转换成字节数高的类型
b.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
3、所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4、 char型和short型参与运算时,必须先转换成int型。
5、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
6、char类型数据转换为int类型数据遵循ASCII码中的对应值6
3强制类型转换
格式 (数据类型) (表达式)
比如num是一个double类型强制类型转换就可以这样输出
printf("num的整数部分是%d\n", (int)num);
强制类型转换表达式式的时候要加括号
比如想转换x+2 就要 (int)(x+2)
转换后不改变原数据类型,只是在本次运算的的时候临时转换
4练手
#include <stdio.h>
int main()
{
int a = 5;
char c = 'a';
float f = 5.3;
double m = 12.65;
double result;
printf("a + c = %d\n", a+c); // 102
printf("a + c = %c\n", a+c); // f
printf(" f + m = %f\n",f+m); //17.950000
printf("a + m = %f\n", a+m); // 17.650000
printf("c + f = %f\n", c + f); //102.300000
result = a + c* (f+m);
printf("double = %f\n",result); // 1746.150019
return 0;
}
练习来自为CSDN博主「matdodo」的原创文章,大家可以点击阅读原文查看