C语言程序设计第二章课件.pptx
本章学习内容 常量和变量,整型和实型 标识符命名,变量的定义和赋值 计算数据类型占用内存空间的大小 第1页/共26页2.1 常量与变量C语言程序处理的数据形式常量(Constant)在程序中不能改变其值的量变量(Variable)其值在程序执行过程中是可以改变的第2页/共26页一个简单的C程序例子#include/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值:整型数a和b之和*/int Add(int a,int b)return(a+b);/*主函数*/main()int x,y,sum=0;printf(Input two integers:);scanf(%d%d,&x,&y);/*输入两个整型数x和y*/sum=Add(x,y);/*调用函数Add计算x和y相加之和*/printf(sum=%dn,sum);/*输出x和y相加之和*/并列的两个函数其中主函数是程序的入口程序注释编译预处理命令第3页/共26页C程序常见符号分类 关键字(Keyword)又称保留字(C Reserved Word)A word that has special meaning in C标识符(Identifier)系统预定义标识符(C Standard Identifier)A word having special meaning but may be redefined(but is not recommended!)用户自定义标识符变量,函数名,第4页/共26页C程序常见符号分类 运算符(Operator)详见附录C 分隔符(Separator)空格、回车/换行、逗号等 其他符号 和标识函数体或语句块/*和*/是程序注释的定界符 常量(Constant)第5页/共26页在程序中不能改变其值的量包括:整型(如 0,67,-2,123L,123u,022,0 x12)默认为int实型(如 2.3,1.2e-5,2.73F,2.73L)默认为double字符型(如 z,3,$,n)用开头的字符为转义字符,代表1个字符字符串(如 UKM,1,5a)枚举型2.1.1常量(Constant)长整型无符号整型 八进制十六进制单精度实型长双精度实型十进制小数指数形式十进制第6页/共26页2.1.2变量(Variable)变量的值在程序执行过程中是可以改变的 变量的属性Name 变量名Type 变量类型Value 变量的值Address 变量的存储单元地址第7页/共26页变量的声明 类型关键字 变量名;变量声明(Variable Declaration)使用变量的基本原则使用变量的基本原则 变量必须先声明,后使用变量必须先声明,后使用 所有变量必须在第一条可执行语句前声明所有变量必须在第一条可执行语句前声明 声明的顺序无关紧要声明的顺序无关紧要 一条声明语句可声明若干个同类型的变量一条声明语句可声明若干个同类型的变量第8页/共26页变量声明(Variable Declaration)声明变量是初始化变量的最好时机不被初始化的变量,其值为随机数结果会是什么?第9页/共26页运算规则:变量变量 表达式表达式 语法:变量变量 =表达式表达式 ;规则:左值和右值类型一致Valid Example:Invalid Example:int x;int y;x=12;y=5.75;变量赋值变量赋值(Variable AssignmentVariable Assignment)第10页/共26页2.3数据类型(Data Type)为什么要区分类型?变量的类型决定了数据的存储形式合法的取值范围占用内存空间的大小可参与的运算种类 第11页/共26页数据类型(Data Type)数据类型基本类型构造类型指针类型无类型整型实型(浮点型)字符型枚举类型数组类型结构体类型共用体类型单精度实型双精度实型基本整型长整型短整型无符号整型长双精度实型第12页/共26页基本数据类型int整数,在目前绝大多数机器上占4个字节TC 2.0,2个字节float单精度浮点数,4个字节double双精度浮点数,8个字节char字符,1个字节表示256个ASCII字符,或0255的整数第13页/共26页数据类型修饰符shortshort int,简写为short,短整数,2个字节longlong int,简写为long,长整数,4个字节long double,长双精度(高精度)浮点数,10个字节unsigned用来修饰char、int、short和long无符号整数(正整数和0)第14页/共26页不同类型取值范围不同C语言直接提供的任何类型都有取值范围第15页/共26页不同类型取值范围不同Most significant bit(MSB)is sign(最高位为符号位)第16页/共26页2.4如何计算变量或数据类型所占内存空间的大小1 TB 1 TB=1 024 GB1 024 GB1 GB1 GB =1 024 MB1 024 MB1 MB1 MB =1 024 KB1 024 KB1 KB1 KB =1 024 B1 024 B1 B 1 B=8 b8 b英文称谓中文称谓换算方法bit(b)位(比特)Byte(B)字节1 B=8 bKilobyte(KB)千字节1 KB=1 024 BMegabyte(MB)兆字节1 MB=1 024 KBGigabyte(GB)吉字节1 GB=1 024 MBTerabyte(TB)太字节1 TB=1 024 GB第17页/共26页一个位有多大?只能是0或者1,二进制一个字节有多大?可以表示0255之间的整数2.4如何计算变量或数据类型所占内存空间的大小第18页/共26页不同类型占用的内存字节数不同同种类型在不同的平台其占字节数不尽相同如int在16位、32位和64位系统上分别占2、4和8个字节不要对变量所占的内存空间字节数想当然用sizeof获得变量或者数据类型的长度现象与危害在平台间移植时会出现问题,导致数据丢失或者溢出注意!注意!第19页/共26页sizeof到底是什么?C语言的关键字,并非函数计算类型占用的字节数两种语法形式 sizeof(类型)结果为类型占用的字节数 sizeof(表达式)结果为表达式值所属类型占用的字节数 一般都使用sizeof(变量名)第20页/共26页现场演示例2.2在TC和VC、CB下的运行结果#include main()printf(Data type Number of bytesn);printf(-n);printf(char%dn,sizeof(char);printf(int%dn,sizeof(int);printf(short int%dn,sizeof(short);printf(long int%dn,sizeof(long);printf(float%dn,sizeof(float);printf(double%dn,sizeof(double);第21页/共26页2.5变量的赋值和赋值运算符简单赋值(Simple Assignment)语法:变量 =表达式;Dont forget the semicolon!Dont forget the semicolon!Every assignment expression has a valueEvery assignment expression has a value第22页/共26页语法:变量1 =变量2 =表达式;多重赋值多重赋值Multiple AssignmentMultiple AssignmentDont forget the semicolon!Dont forget the semicolon!右结合:从右向左赋值右结合:从右向左赋值 变量1 =(变量2 =表达式);第23页/共26页Example:int a,b;float x,y;.a=b=0;x=y=100.0;b?a?x?y?00100.0100.0多重赋值多重赋值Multiple AssignmentMultiple Assignment第24页/共26页Questions and answers第25页/共26页感谢您的欣赏!第26页/共26页