数据类型转换 自动转换/隐式转换 ·不同类型的数据进行运算,需先转换成同一类型 ●转换按数据长度增加的方向进行,以保证精度不降低 ·所有的浮点运算都是以双精度进行的 ·char型和short型参与运算时,先转换成int型 ·赋值号两边的数据类型不同时,右边的类型将转换为左边的 char→short.→int→long->unsigned long-→double←f1oat c datatype.c printf("1/2=%f\n",1/2); printf("1.0/2=%f\n",1.0/2); 17 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 数据类型转换 17 printf("1/2=%f\n", 1/2); printf("1.0/2=%f\n", 1.0/2); char→short→int→long→unsigned long→double←float 不同类型的数据进行运算,需先转换成同一类型 转换按数据长度增加的方向进行,以保证精度不降低 所有的浮点运算都是以双精度进行的 char 型和 short 型参与运算时,先转换成 int 型 赋值号两边的数据类型不同时,右边的类型将转换为左边的 自动转换/隐式转换 C_datatype.c
数据类型转换 强制转换/显式转换 (类型说明符)表达式 /将表达式的值转换成指定的类型 c datatype.c printf("1/2=%f\n",1/2); printf("1.0/2=%f\n",1.0/2); printf("(double)1/2=%f\n",(double)(1)/2); printf("(double)(1/2)=%f\n",(double)(1/2)); 转换规侧 浮点型转整型:直接丢掉小数部分 ● 字符型转整型:为字符的ASCII码 整型转字符型:ASCII码对应的字符 18 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 数据类型转换 18 printf("1/2=%f\n", 1/2); printf("1.0/2=%f\n", 1.0/2); printf("(double)1/2=%f\n", (double)(1)/2); printf("(double)(1/2)=%f\n", (double)(1/2)); C_datatype.c 浮点型转整型:直接丢掉小数部分 字符型转整型:为字符的 ASCII 码 整型转字符型:ASCII 码对应的字符 转换规则 (类型说明符)表达式 // 将表达式的值转换成指定的类型 强制转换/显式转换
变量 变量 用于存储数据,值可以改变 变量名:要求与标识符相同 。变量类型:整型、实型、字符型、布尔型 变量必须先声明,后使用 变量的声明 数据类型 变量名列表: ●变量初始化:声明变量时直接赋值 int i=3,j=10; double pi=3.14159; char c='0'; 19 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 变量 19 用于存储数据,值可以改变 ► 变量名:要求与标识符相同 ► 变量类型:整型、实型、字符型、布尔型 ► 变量必须先声明,后使用 数据类型 变量名列表; 变量的声明 变量初始化:声明变量时直接赋值 int i=3, j=10; double pi=3.14159; char c='0'; 变量
常量(常数、字符串) 常量 在程序运行中值不能改变的量 整型常量:整数,后面加1或L表示长整型,后面加“或U表示无符号整型 实型常量:缺省为双精度,后面加f或F表示单精度,加I或L表示long double 字符型常量:用单引号括起来的单个字符和转义字符 ·字符串常量:用双引号括起来的字符序列 p布尔常量:true和false 需加头文件:#include<stdbool.h> 123,-456,123456789L,123456789U; 1.2,1.2F,1.2L,1.2e8,1.2e8F,1.2e-8L M,A',T',H',?',$ "MATH@ECNU" 20 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 常量(常数、字符串) 20 常量 在程序运行中值不能改变的量 ► 整型常量:整数,后面加 l 或 L 表示长整型,后面加 u 或 U 表示无符号整型 ► 实型常量:缺省为双精度,后面加 f 或 F 表示单精度,加 l 或 L 表示 long double ► 字符型常量:用单引号括起来的单个字符和转义字符 ► 字符串常量:用双引号括起来的字符序列 ► 布尔常量:true 和 false 123, -456, 123456789L, 123456789U; 1.2, 1.2F, 1.2L, 1.2e8, 1.2e8F, 1.2e-8L 'M', 'A', 'T', 'H', '?', '$' "MATH@ECNU" 需加头文件: #include <stdbool.h>
常量(符号常量) 符号常量 用标识符表示常量,即值不能改变的变量 符号常量的声明 const数据类型 标识符=常量值; const float PI=3.1415926; 符号常量在声明时必须初始化 十符号常量的值在程序中不能被修改(不能重新赋值) 21 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 常量(符号常量) 21 符号常量 用标识符表示常量,即值不能改变的变量 const 数据类型 标识符=常量值; 符号常量的声明 const float PI=3.1415926; † 符号常量在声明时必须初始化 † 符号常量的值在程序中不能被修改(不能重新赋值)