Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,*,*,/26,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,HIT-C Programming,第2章 C数据类型,哈尔滨工业大学,计算机科学与技术学院,苏小红,第2章 C数据类型哈尔滨工业大学,1,本章学习内容,常量和变量,整型和实型,标识符命名,变量的定义和赋值,计算数据类型占用内存空间的大小,本章学习内容 常量和变量,整型和实型,2.1 常量与变量,C语言程序处理的数据形式,常量(),在程序中不能改变其值的量,变量(),其值在程序执行过程中是可以改变的,2.1 常量与变量C语言程序处理的数据形式,一个简单的C程序例子,/*函数功能:计算两个整数相加之和,入口参数:整型数据a和b,返回值:整型数a和b之和,*/,(a,b),(a+b);,/*主函数*/,(),x,y,=0;,(:);,(,);/*输入两个整型数x和y*/,=(x,y);/*调用函数计算x和y相加之和*/,(=n,);/*输出x和y相加之和*/,并列的两个函数,其中主函数是,程序的入口,程序注释,编译预处理命令,一个简单的C程序例子 并列的两个函数程序注释编译预处理,C程序常见符号分类,关键字(),又称保留字(C ),A C,标识符(),系统预定义标识符(C ),A (!),用户自定义标识符,变量,函数名,,C程序常见符号分类 关键字(),C程序常见符号分类,运算符(),详见附录C,分隔符(),空格、回车/换行、逗号等,其他符号,和标识函数体或语句块,/*和*/是程序注释的定界符,常量(),C程序常见符号分类 运算符(),在程序中不能改变其值的量,包括:,整型(如 0,67,-2,123L,123u,022,0 x12),默认为,实型(如 2.3,1.25,2.73F,2.73L),默认为,字符型(如 z,3,$,n),用开头的字符为转义字符,代表1个字符,字符串(如,1,5a),枚举型,2.1.1常量(),长整型,无符号整型,八进制,十六进制,单精度实型,长双精度实型,十进制小数,指数形式,十进制,2.1.1常量()长整型无符号整型八进制十六进制单精度实型长,2.1.2变量(),变量的值在程序执行过程中是可以改变的,变量的属性,变量名,变量类型,变量的值,变量的存储单元地址,2.1.2变量()变量的值在程序执行过程中是可以改变的,变量的声明,类型关键字 变量名;,变量声明(),使用变量的基本原则,变量必须先声明,后使用,所有变量必须在第一条可执行语句前声明,声明的顺序无关紧要,一条声明语句可声明若干个同类型的变量,变量的声明变量声明()使用变量的基本原则,变量声明(),声明变量是初始化变量的最好时机,不被初始化的变量,其值为随机数,结果会是什么?,变量声明()声明变量是初始化变量的最好时机结果会是什么?,运算规则:,变量 表达式,语法:,变量 =表达式;,规则:左值和右值类型一致,:,x;y;,x=12;y=5.75;,变量赋值(),运算规则::变量赋值(),2.3数据类型(),为什么要区分类型?,变量的类型决定了,数据的存储形式,合法的取值范围,占用内存空间的大小,可参与的运算种类,2.3数据类型()为什么要区分类型?,数据类型(),数据类型,基本类型,构造类型,指针类型,无类型,整型,实型(浮点型),字符型,枚举类型,数组类型,结构体类型,共用体类型,单精度实型,双精度实型,基本整型,长整型,短整型,无符号整型,长双精度实型,数据类型()数据类型基本类型构造类型指针类型无类型整型实型,基本数据类型,整数,在目前绝大多数机器上占4个字节,2.0,2个字节,单精度浮点数,4个字节,双精度浮点数,8个字节,字符,1个字节,表示256个字符,或0255的整数,基本数据类型,数据类型修饰符,,简写为,短整数,2个字节,,简写为,长整数,4个字节,,长双精度(高精度)浮点数,10个字节,用来修饰、和,无符号整数(正整数和0),数据类型修饰符,不同类型取值范围不同,C语言直接提供的任何类型都有取值范围,不同类型取值范围不同C语言直接提供的任何类型都有取值范围,不同类型取值范围不同,()(最高位为符号位),不同类型取值范围不同 ()(最高位为符号位),2.4如何计算变量或数据类型所占内存空间的大小,1 =1 024,1 =1 024,1 =1 024,1 =1 024 B,1 B=8 b,英文称谓,中文称谓,换算方法,(b),位(比特),(B),字节,1 B=8 b,(),千字节,1 =1 024 B,(),兆字节,1 =1 024,(),吉字节,1 =1 024,(),太字节,1 =1 024,2.4如何计算变量或数据类型所占内存空间的大小1 =1,一个位有多大?,只能是0或者1,二进制,一个字节有多大?,可以表示0255之间的整数,2.4如何计算变量或数据类型所占内存空间的大小,一个位有多大?2.4如何计算变量或数据类型所占内存空间的大,不同类型占用的内存字节数不同,同种类型在不同的平台其占字节数不尽相同,如在16位、32位和64位系统上分别占2、4和8个字节,不要对变量所占的内存空间字节数想当然,用获得变量或者数据类型的长度,现象与危害,在平台间移植时会出现问题,导致数据丢失或者溢出,注意!,不同类型占用的内存字节数不同同种类型在不同的平台其占字节数不,到底是什么?,C语言的关键字,并非函数,计算类型占用的字节数,两种语法形式,(类型),结果为类型占用的字节数,(表达式),结果为表达式值所属类型占用的字节数,一般都使用(变量名),到底是什么?C语言的关键字,并非函数,现场演示例2.2在和、下的运行结果,(),(n);,(n);,(n,();,(n,();,(n,();,(n,();,(n,();,(n,();,现场演示例2.2在和、下的运行结果 ,2.5变量的赋值和赋值运算符,简单赋值(),语法:,变量 =表达式;,Dont forget the semicolon!,a,2.5变量的赋值和赋值运算符简单赋值()Dont for,语法:,变量1 =变量2 =表达式;,多重赋值,Dont forget the semicolon!,右结合:从右向左赋值,变量1 =(变量2 =表达式);,语法:多重赋值 Dont forget the semi,:,a,b;,x,y;,.,a=b=0;,x=y=100.0;,b,?,a,?,x,?,y,?,0,0,100.0,100.0,多重赋值,:b?a?x?y?00100.0100.0多重赋,Questions and answers,Questions and answers,