第03章 数据类型运算符表达式tgm
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 实型常量的类型
–默认double型 默认double型 默认double –在实型常量后加字母f或F,认为它是float 型 <
第三章 数据类型运算符表达式
浮点型变量
• 一般4个字节 •float:占4字节,提供7位有效数字 float: 字节,提供7 float •double:占8字节,提供15 16位有效 double: 字节,提供15 16位有效 15~16 double 数字 •要注意舍入误差 要注意舍入误差
…...
…...
2字节 2字节
随机数
<
>
第三章 数据类型运算符表达式
整型变量
• 占字节数随机器不同而不同,一般占一个机器字 占字节数随机器不同而不同, • short≤int≤long • 可用sizeof(类型标识符)测量 可用sizeof(类型标识符) sizeof
实型变量 • float:占4字节,提供7位有效数字 float: 字节,提供7 • double:占8字节,提供15 16位有效数字 double: 字节,提供15 16位有效数字 15~16 例 字符型变量 float a; a=111111.111; ASCII码 /* • 字符变量存放字符ASCII码 字符变量存放字符ASCII a=111111.1*/ double b; • char与int数据间可进行算术运算 char与int数据间可进行算术运算 b=111111.111; /* b=111111.111*/ 例 a=‘D’; /* a=68; */ 没有字符串变量,用字符数组存放 x=‘A’+5; /* x=65+5; */ s=‘!’+‘G’ /* s=33+71; */ < >
• 运算转换规则:不同类型数据运算时先自动转换 运算转换规则:不同类型数据运算时先自动 自动转换 成同一类型
<
>
第三章 数据类型运算符表达式 double float 高 long
说明: 必定的转换 运算对象类型不同时转换
unsigned 例 int i; float f; double d; long l; 10+‘a’ +i*f int int d/l
• 表示形式: 表示形式:
–十进制数形式:(必须有小数点) 如 十进制数形式: 十进制数形式 0.123, .123, 123.0 0.0 123. 123.0, 0.0, –指数形式:(e或E之前必须有数字;指数 指数形式: 指数形式 必须为整数)如12.3e3 ,123E2, 1.23e4 , 1.2Ee-5 , 1.2E-3.5
00 最小:0
基本类型有常量和变量之分
Biblioteka Baidu
第三章 数据类型运算符表达式
3.2 常量与变量
–常量 常量
• 定义:程序运行时其值不能改变的量(即常数) • 分类:
–直接常量: » 整型常量 10 23 0123 0x123 » 实型常量 3.14159 » 字符常量 ‘a’ ‘\n’ » 字符串常量 “abc” “a” –符号常量:用标识符代表常量 » 定义格式: #define 符号常量 –常变量 const int c;
第三章 数据类型运算符表达式
• 变量初始化 定义时赋初值 变量初始化:定义时赋初值 • 变量的使用:先定义,后使用 变量的使用:先定义, 例: • 变量定义位置:一般放在函数开头 int a=2,b,c=4; 变量定义位置:一般放在函数开头 int a=1, b=-3,c; float data=3.67; main() 例1 char ch=‘A’; { int a,b=2; 地址 int student; int 1 x=1,y=1,z=1; 2字节 a ‘statent’ in function main a=1; stadent=19; //Undefined symbol int x=y=z=1;(错) 地址
第三章 数据类型运算符表达式
例 /*ch3_003.c*/ #include<stdio.h> #define PRICE 12.5 main() { int num=3; float total; char ch1,ch2=‘D’;
宏定义
变量定义
total=num*PRICE; 输出结果 ch1=ch2-‘A’+‘a’; printf(“total=%f,ch1=%c\n”,total,ch1); } 运行结果: total=37.50000, ch1=d
• 定义:用双引号(“”)括起来的字符序列。 自动加一个 ‘\0’ 作为字 • 存储:每个字符串尾自动 自动 符串结束标志 字符串“hello”在内存中 例 字符串“hello 在内存中 h e l l o \0
例 空串 “” \0
• 字符常量与字符串常量不同
例 ‘a’
a
“a”
a \0
例: 例:
<
char ch; char ch; ch=‘A’; ch=“A”;
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作
<
>
定义类型typedef 定义类型
第三章 数据类型运算符表达式 基本数据类型 类型 符号 关键字 (signed)int 整 型 (signed)short (signed)long unsigned int unsigned short unsigned long float 型 实 型 字 符 型 double char 字符型 unsigned char :数 类型所占字 数 型 型 型 型 所占位数 16 16 32 16 16 32 32 64 8 8 数的表示范围 -32768~32767 -32768~32767 -2147483648~2147483647 0~65535 0~65535 0~4294967295 3.4e-38~3.4e38 1.7e-308~1.7e308 -128~127 0~255 , 表 IBM PC :
第三章 数据类型运算符表达式
第三章 数据类型
数据类型 常量与变量 各类数值型数据间的混合运算 运算符和表达式
第三章 数据类型运算符表达式
短整型short 整型int 长整型long 单精度型float
• 3.1
数据类型
整 型
– 数据类型总表
基本类型 实型
双精度型double 字符类型char 数组 C 数 据 类 型 结构体struct 构造类型 共用体union 枚举类型enum 指针类型 空类型void 空类型
• 长度:没限制但不宜过长 一般不超过 个字符 长度:没限制但不宜过长,一般不超过31个字符 一般不超过 • 命名原则:见名知意 命名原则: 例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123 < >
3.2 常量与变量 标识符
• 作用:用来标识变量、常量、函数等的字符序列 作用:用来标识变量、常量、 • 组成: 组成:
– 只能由字母、数字、下划线组成,且第一个字母必 只能由字母 数字、下划线组成 字母、 组成, 须是字母或下划线 – 区分大小写 – 不能使用关键字(是系统中已预定义的单词 是系统中已预定义的单词) 是系统中已预定义的单词
第三章 数据类型运算符表达式
32个关键字:(由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while
main() float data; -3 { int data=(a+b)*1.2; b a,b=2; 变量定义 地址 float data; printf(“data=%f\n”,data); 可执行语句 ×× c a=1; } 编译程序根据变量定义为其 分配指定字节的内存单元 data=(a+b)*1.2; printf(“data=%f\n”,data); 内存 }
<
>
第三章 数据类型运算符表达式 int型: 01 11 11 10 00 00 11 11 11 11 00 00 00 00 11 00 最大:32767 最小:-32768
unsigned int型: 11 11 11 00 00 00
11 11 11 11 00 00 00 00
11
最大:65535
低
int
char,short
例 float a; a=111111.111; double b; b=111111.111; /* a=111111.1*/ /* b=111111.111*/
第三章 数据类型运算符表达式
字符型数据: 字符型数据:字符常量
• 定义:用单引号括起来的单个普通字符或转义字符. • 字符常量的值:该字符的ASCII码值 如 ‘a’ ‘A’ ‘?’ ‘\n’ ‘\101’ • 转义字符:反斜线后面跟一个字符或一个代码值表示 例 转义字符举例(ch3_001.c,ch3_004.c) 转义字符及其含义: #include<stdio.h> 转义字符 含义 转义字符 含义 main() \t \n { 换行 水平制表 printf("\101 \x42 C\n"); \b 垂直制表 退格 \v printf("I say:\"How are you?\"\n"); \r printf("\\C Program\\\n"); \f 回车 换页 < \a printf("Turbo \'C\'"); \\ 响铃 反斜线 \‘ } \“ 单引号 双引号
第三章 数据类型运算符表达式
3.3各类数值型数据间的混合运算 各类数值型数据间的混合运算
–隐式转换 隐式转换
• 什么情况下发生
–运算转换------不同类型数据混合运算时 运算转换------不同类型数据混合运算时 运算转换-----–赋值转换------把一个值赋给与其类型不同的变量时 赋值转换-----赋值转换------把一个值赋给与其类型不同的变量时 –输出转换------输出时转换成指定的输出格式 输出转换-----输出转换------输出时转换成指定的输出格式 –函数调用转换------实参与形参类型不一致时转换 函数调用转换-----函数调用转换------实参与形参类型不一致时转换
常量
<
>
第三章 数据类型运算符表达式
– 变量
• 概念:其值可以改变的量 • 变量名 变量值 变量名与变量值 • 变量定义的一般格式: 变量1[,变量2, ,变量n]; 数据类型 变量 ,变量 ,…,变量 例: int a,b,c; float data;
决定分配字节数 和数的表示范围
合法标识符
第三章 数据类型运算符表达式
\ddd 3位8进制数代表的字符 \xhh 2位16进制数代表的字符
第三章 数据类型运算符表达式
字符变量
• • • • char 一个字节长度 存放一个字符常量 存放的是一个字节的整数(ASCII值)
– 一般默认signed
• 如何输出一个字符变量
– %c – %d
第三章 数据类型运算符表达式
字符串常量
<
第三章 数据类型运算符表达式
整型数据:整型常量(整常数) 整型数据:整型常量(整常数)
•三种形式:
–十进制整数:由数字0~9和正负号表 示.如 123,-456,0 –八进制整数:由数字0开头,后跟数字 0~7表示.如0123,011 –十六进制整数:由0x开头,后跟 0~9,a~f,A~F表示. 如 0x123,0Xff
<
第三章 数据类型运算符表达式
整型: 整型:整型变量
•三种形式:
–基本整数:int –短整型:short int 或 short –长整型:long 或 long int
•符号:
–有符号 signed int –无符号 unsigned int
整型常量的存储类型?
第三章 数据类型运算符表达式
浮点型数据: 浮点型数据: 浮点型常量(实数或浮点数) 浮点型常量(实数或浮点数)