第二章数据类型、运算符与表达式 数据类型 常量与变量 不同类型数据间的转换 远算符和表达式
第二章 数据类型、运算符与表达式 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式
§2.1数据类型 短整型 short 程 ★数据类型总表(整型整型int 长整型long 设 计 基本类型 单精度型foat 实型 双精度型 double 字符类型char 数组 数据类型决定 1.数据占内存字节数 C 结构体 struct 2.数据取值范围 数 据)造类型 共用体uion|3.其上可进行的操作 类型 枚举类型enum 第二章数据描述 指针类型 空类型void 定义类型 typedef
§2.1 数据类型 数据类型总表 C 数 据 类 型 基本类型 构造类型 指针类型 空类型void 定义类型typedef 字符类型char 枚举类型enum 整 型 实型 单精度型float 双精度型double 数组 结构体struct 共用体union 短整型short 长整型long 整型int 数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作 语 言 程 序 设 计 第 二 章 数 据 描 述 C
★基本数据类型 程 类型符号 关键字 所占位数 数的表示范围 设 (signed)int 16 32768~32767 计 有( signed) short 16 -32768~32767 整 igned )lor 32 2147483648~2147483647 unsigned int 0~65535 无| unsigned short 0~65535 unsigned long 32 0~4294967295 实 有 float 32 3.4e-38~3.4e38 型有 double 64 17e-308~1.7e308 第 字有|char 128~127 元| unsigned char 0~255 章 数说明:数据类型所占字节数随机器硬件不同而不同,上表以旧MPC机为例 据 描 术
基本数据类型 类型符号 关键字 所占位数 数的表示范围 整 型 字 符 型 实 型 有 无 (signed)int 16 -32768~32767 (signed)short 16 -32768~32767 (signed)long 32 -2147483648~2147483647 unsigned int 16 0~65535 unsigned long 32 0~4294967295 unsigned short 16 0~65535 有 float 32 3.4e-38~3.4e38 有 double 64 1.7e-308~1.7e308 有 char 8 -128~127 无 unsigned char 8 0~255 说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例: 语 言 程 序 设 计 第 二 章 数 据 描 述 C
§22常量与变量 程★标识符 今定义:用来标识变量、常量、函数等的字苻序列 设 计 今组成: ●只能由字母、数字、下划线组成,且第一个字母必须是字母或下 划线 ●大小写敏感 ●不能使用关键字 今长度:最长32个字符 例:判断下列标识符号合法性 sun Sum MD.John day Date 3days 第二章数据描述 student name #33 lotus 1 2 3 char apb above $123
§2.2 常量与变量 标识符 ❖定义:用来标识变量、常量、函数等的字符序列 ❖组成: ⚫只能由字母、数字、下划线组成,且第一个字母必须是字母或下 划线 ⚫大小写敏感 ⚫不能使用关键字 ❖长度:最长32个字符 ❖命名原则: ⚫见名知意 ⚫不宜混淆 如l与I, o与0 例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123 M.D.John 3days #33 char a>b $123 语 言 程 序 设 计 第 二 章 数 据 描 述 C
程★常量 心定义:程序运行时其值不能改变的量(即常数) 设 计 今分类 ●符号常量:用标识符代表常量 ◆定义格式:# define符号常量常量 例符号常量举例(ch2_1c #define ●直接常量: #define price 30 ◆整型常量 maino 运行结果: total=300 ◆实型常量 ◆字符常量 Int num, total 第二章数据描述 ◆字符串常量 num=10 total=num PRICE printf("total=%d", total)
◆一般用大写字母 ◆是宏定义预处理命令,不是C语句 ⚫直接常量: ◆整型常量 ◆实型常量 ◆字符常量 ◆字符串常量 如 #define PRICE 30 常量 ❖定义:程序运行时其值不能改变的量(即常数) ❖分类: ⚫符号常量:用标识符代表常量 ◆定义格式: #define 符号常量 常量 > > > > 例 符号常量举例(ch2_1.c) #define PRICE 30 main() { int num,total; num=10; total=num*PRICE; printf("total=%d",total); } 运行结果:total=300 语 言 程 序 设 计 第 二 章 数 据 描 述 C
程 整型常量(整常数) 今三种形式: 设 计 ●十进制整数:由数字0~9和正负号表示.如123,-456,0 八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 ●十六进制整数:由0x开头,后跟0~9,a~f,A~F表示 如0x123,0Xff 今整型 问题 类型 0123=( 0x123= )。它是0t型常量 0×f=( 第二章数据描述
整型常量(整常数) ❖三种形式: ⚫十进制整数:由数字0~9和正负号表示.如 123,-456,0 ⚫八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 ⚫十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff < 例 12 与 12L 例 30000 为int型 65536 为long int 型 ❖整型常量的类型 ⚫根据其值所在范围确定其数据类型 ⚫在整常量后加字母l或L,认为它是long int 型常量 问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10 83 291 255 问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10 语 言 程 序 设 计 第 二 章 数 据 描 述 C
程 实型常量(实数或浮点数) 设 今表示形式: 计 ●十进制数形式:(必须有小数点)如0.123,.123, 123.0,0.0,123 0指数形式:(e或E之前必须有数字;指数必须为整数) 如12.3e3,123E2,1.23e4,e-5,1.2E-3.5 今实型常量的类型 ●默认 double型 在实型常量后加字母f或F,认为它是 float型 第二章数据描述
实型常量(实数或浮点数) ❖表示形式: ⚫十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. ⚫指数形式:(e或E之前必须有数字;指数必须为整数) 如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 < ❖实型常量的类型 ⚫默认double型 ⚫在实型常量后加字母f或F,认为它是float 型 语 言 程 序 设 计 第 二 章 数 据 描 述 C
字符常量 今定义:用单引号括起来的单个普通字符或转义字符 字常如“a’A?"n1101 今转义;尽科线后醇跟一个带發一个代码值表示 例转义字符举例(ch2001c;ch2004c) 转 maino n 运行结果:(屏幕显示) printf( \101 x42 CIn") ABC printf("I say: " How are you? \"n") Isay: How are you? \C Program\ printf("\C ProgramIn TurboC printf("Turbo \C") 反斜线 双引号 Addd 例main( 运行结果: 的字符 printf( Yb-n”); 屏幕显示:= 打印机输出:¥
字符常量 ❖定义:用单引号括起来的单个普通字符或转义字符. ❖字符常量的值:该字符的ASCII码值 < 转义字符及其含义: 转义字符 含义 \n \v \r \a \‘ \ddd \t \b \f \\ \“ \xhh 转义字符 含义 换行 垂直制表 回车 响铃 单引号 3位8进制数代表的字符 水平制表 退格 换页 反斜线 双引号 2位16进制数代表的字符 如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\60’ -----------’0’ ‘\483’ ----------() 例: ‘A’-------’\101’-------’\x41’--------65 < 如 ‘A’——65, ‘a’——97, ‘0’——48 , ‘\n’——10 如 ‘a’ ‘A’ ‘?’ ‘\n’ ‘\101’ ❖转义字符:反斜线后面跟一个字符或一个代码值表示 例 转义字符举例(ch2_001.c,ch2_004.c) main() { printf("\101 \x42 C\n"); printf("I say:\"How are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'"); } 运行结果:(屏幕显示) A B C Isay:”How are you?” \C Program\ Turbo ‘C’ 例 main() { printf(“Y\b=\n”); } 运行结果: 屏幕显示:= 打印机输出:¥
字符串常量 程 今定义:用双引号()括起来的字符序列 设 心存储:每个字待串尾自动加一个40,作为字 计 符串结東标志 例字符串“ hello在内存中 e 例空串 10 ◆字苻常量与字符串常量不同 例 aa “a”[aO」 第二章数据描述 例 char c ch ch=a
< ❖字符常量与字符串常量不同 字符串常量 ❖定义:用双引号(“”)括起来的字符序列 ❖存储:每个字符串尾自动加一个 ‘\0’ 作为字 符串结束标志 例 字符串“hello”在内存中 h e l l o \0 例 ‘a’ a “a” a \0 例 空串 “” \0 例: char ch; ch=“A”; 例: char ch; ch=‘A’; 语 言 程 序 设 计 第 二 章 数 据 描 述 C
★变量 今概念:其值可以改变的量 程 Ch2 005.c ◆变量名与变量值 设 计 今变量定义的一般格式: 数据类裂变量1,衮量2,…,变量n 冷变量初斗长例 1b=-30 窦罗弔数定’幂银例 我涂量一艳丌头 2,b,c=4; my main( 例2 i int a, b=2 第 float a=1 c=a float data function main 数 data=(a+b)*1.2 2字节 据 描 intf(data=%fn,data小 述< 随机数
编译程序根据变量定义为其 分配指定字节的内存单元 …... 地址 int a=1, b=-3,c; a b c 2字节 2字节 2字节 地址 地址 …... 内存 1 -3 随机数 变量 ❖概念:其值可以改变的量 ❖变量名与变量值 ❖变量定义的一般格式: 数据类型 变量1[,变量2,…,变量n]; ❖变量初始化:定义时赋初值 例: int a,b,c; float data; 决定分配字节数 和数的表示范围 合法标识符 例: int a=2,b,c=4; float data=3.67; char ch=‘A’; int x=1,y=1,z=1; int x=y=z=1; ❖变量的使用:先定义,后使用 例1 int student; stadent=19; //Undefined symbol ‘statent’ in function main 例2 float a,b,c; c=a%b; //Illegal use of floating point in function main ❖变量定义位置:一般放在函数开头 main() { int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%f\n”,data); } 变量定义 可执行语句 main() { int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%f\n”,data); } Ch2_005.c 语 言 程 序 设 计 第 二 章 数 据 描 述 C