C语言的基本数据类型及其运算课件.pptx

上传人(卖家):晟晟文业 文档编号:3725424 上传时间:2022-10-07 格式:PPTX 页数:42 大小:169.68KB
下载 相关 举报
C语言的基本数据类型及其运算课件.pptx_第1页
第1页 / 共42页
C语言的基本数据类型及其运算课件.pptx_第2页
第2页 / 共42页
C语言的基本数据类型及其运算课件.pptx_第3页
第3页 / 共42页
C语言的基本数据类型及其运算课件.pptx_第4页
第4页 / 共42页
C语言的基本数据类型及其运算课件.pptx_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、学习目标:学习目标:熟悉基本数据类型熟悉基本数据类型认识常量认识常量 理解变量和存储以及变量定义理解变量和存储以及变量定义能够使用运算符能够使用运算符理解运算符的优先级及表达式的运算规则理解运算符的优先级及表达式的运算规则 简单表达式的运算简单表达式的运算2.1 C2.1 C语言的数据类型语言的数据类型注意:注意:C C程序中所出现的程序中所出现的所有数据所有数据都必须明确指定其数据类型。都必须明确指定其数据类型。数据类型数据类型基本类型基本类型整型整型实型实型字符型字符型标准类型标准类型用户定义类型用户定义类型枚举型枚举型单精度型单精度型 双精度型双精度型空类型空类型指针类型指针类型构造类型

2、构造类型结结构构体体类类型型数数组组类类型型共共用用体体类类型型数据类型的分类:数据类型的分类:C C语言提供了丰富的数据类型。语言提供了丰富的数据类型。数据类型的概念:数据类型的概念:数据类型是一类数据的抽象表示,这类数据具数据类型是一类数据的抽象表示,这类数据具 有相同的形式,遵从相同的运算规则有相同的形式,遵从相同的运算规则.数据类型的长度:数据类型的长度:在计算机中,由于软硬件的各种原因,数据类在计算机中,由于软硬件的各种原因,数据类 型必须有一个长度的限制。这个长度是指数据型必须有一个长度的限制。这个长度是指数据 存储在计算机中需要占用多少个字节数。不同存储在计算机中需要占用多少个字

3、节数。不同 类型的数据在内存中占用的字节数是不同的。类型的数据在内存中占用的字节数是不同的。溢出处理:溢出处理:不同的数据类型规定了不同的机内表示长度,也决定了不同的数据类型规定了不同的机内表示长度,也决定了 对应数据量的变化范围。当某一数据超出该数据类型所对应数据量的变化范围。当某一数据超出该数据类型所规定的范围时,计算机会拒绝接受,而将之转换成范围规定的范围时,计算机会拒绝接受,而将之转换成范围内的另外某个数,这种情况称之为溢出处理。内的另外某个数,这种情况称之为溢出处理。例如:在例如:在PCPC机上的机上的Turbo CTurbo C系统下整型的长度规定为系统下整型的长度规定为2 2个字

4、节,所个字节,所 以表示的范围限制在以表示的范围限制在-32768-327683276732767(-2-215152 21515-1-1)之间。)之间。在大多数在大多数UNIXUNIX机器上,整数是由机器上,整数是由4 4个字节(个字节(3232位),它们表位),它们表 示的范围是示的范围是-2147483648-2147483648 21474836472147483647(-2-231312 23131-1-1)。)。溢出演示:溢出演示:21.c 常量和变量是在计算机中数据类型的具体表现形式,它们不再常量和变量是在计算机中数据类型的具体表现形式,它们不再是抽象的概念而是实在的数据,这些数

5、据符合对数据类型的规定是抽象的概念而是实在的数据,这些数据符合对数据类型的规定(形式和运算规则两方面)。常量和变量之间的区别在于程序执行(形式和运算规则两方面)。常量和变量之间的区别在于程序执行过程中的变化情况。常量是一成不变的,而变量则可以不断改变。过程中的变化情况。常量是一成不变的,而变量则可以不断改变。2.2 2.2 常量与变量常量与变量 C C语言中的数据分为常量和变量。他们都有类型之分。语言中的数据分为常量和变量。他们都有类型之分。2.2.1 2.2.1 常量与符号常量常量与符号常量2.2.2 2.2.2 变量变量 在程序运行过程中其值不能被改变的量值。在程序运行过程中其值不能被改变

6、的量值。例如:例如:1 1,2 2,3.13.1,-4.0-4.0,A A,b b,“abncabnc”,“ABnABn”。C C语言规定的常量根据数据类型分为四种:语言规定的常量根据数据类型分为四种:整型常量整型常量 实型常量实型常量 字符型常量字符型常量 字符串常量字符串常量 在程序中使用常量时,一般不需要具体指出它属于哪一种类型,在程序中使用常量时,一般不需要具体指出它属于哪一种类型,C C语言编译系统会自动根据常量的数据大小和直观形式来确定它语言编译系统会自动根据常量的数据大小和直观形式来确定它 的数据类型。的数据类型。例如例如:(:(1 1)1 1,2 2,-1-1 这些值为整数,属

7、于整型常量;这些值为整数,属于整型常量;(2 2)3.13.1,-4.0-4.0,3.14159263.1415926的值为实数,属于实型常量。的值为实数,属于实型常量。(3 3)A A,b b则为字符常量。则为字符常量。当某个常量引用起来比较复杂而由要经常使用时,当某个常量引用起来比较复杂而由要经常使用时,可以将该常量定义为可以将该常量定义为符号常量符号常量。整型常量:整型常量:就是一个整数。在计算机中一般占用就是一个整数。在计算机中一般占用2 2个字节。个字节。三种形式:三种形式:例如例如0X0X100100表示十六进制数表示十六进制数100100。0 x1230 x123,0 xacd

8、0 xacd 十进制整数(一般表示方法)十进制整数(一般表示方法)八进制整数(以八进制整数(以0 0开头的数)开头的数)十六进制整数(以十六进制整数(以0X0X开头的数)开头的数)100100表示十进制表示十进制100100。例如例如0 0100100表示八进制数表示八进制数100100。例如:例如:01230123,-0456-0456等等整常数在不加特别说明时为正值。如果是负值,则整常数在不加特别说明时为正值。如果是负值,则“-”必须放在常必须放在常 数的前面。例如:数的前面。例如:-123-123长整型常量和普通的整型常量基本相似,在一个常数的后面加一个长整型常量和普通的整型常量基本相似

9、,在一个常数的后面加一个 字母字母L L或或l l,则被认为是长整型。长整型常量的长度为四个字节,因,则被认为是长整型。长整型常量的长度为四个字节,因 此长整型常量的表示范围要远远大于整型常量。此长整型常量的表示范围要远远大于整型常量。例如:例如:10L10L,79L79L,0115L0115L,0 x4eL0 x4eL整型整型实型常量:实型常量:就是通常带有小数点的实数,在计算机中占用就是通常带有小数点的实数,在计算机中占用4 4个字节。个字节。实型常量有实型常量有两种两种表示方法:表示方法:十进制数形式(由正负号、数字和小数点组成)十进制数形式(由正负号、数字和小数点组成)例如:例如:10

10、0.5100.5,-1.0-1.0,.123.123,5.5.,0.00.0指数形式(由尾数、字母指数形式(由尾数、字母E E或或e e、指数三部分组成)、指数三部分组成)例如例如:123.0E-1:123.0E-1,1.23E31.23E3注意:必须有小注意:必须有小数点数点标准的指数形式是:小数点的左侧只有一位数字。标准的指数形式是:小数点的左侧只有一位数字。例如例如1.23E-21.23E-2,0.276E30.276E3。计算机的输出是按标准指数形式输出的。计算机的输出是按标准指数形式输出的。注意:指数部分注意:指数部分必须为整数,不必须为整数,不能为小数能为小数注意:注意:书写实型常

11、量时常有一些省略形式,实型常量中的小数部分或整数书写实型常量时常有一些省略形式,实型常量中的小数部分或整数 部分可以省略,但不能同时省略;部分可以省略,但不能同时省略;小数点不能省略;指数形式小数点不能省略;指数形式 中的中的E E或或e e不能省略;不能省略;+可以省略;可以省略;-不能省略。不能省略。所有的所有的实型常量的有效位数为实型常量的有效位数为7 7位,所以一个实型常量中超过位,所以一个实型常量中超过7 7个有效个有效 位的部分是无效的。位的部分是无效的。字母字母E E或或e e之前必须有数字,而且字母之前必须有数字,而且字母E E或或e e之后的指数必须为整数。之后的指数必须为整

12、数。实数实数字符常量:字符常量:包括可以全部在计算机上显示的符号,也可以说是包括可以全部在计算机上显示的符号,也可以说是ASCIIASCII 码表上的全部字符,一个字符占一个字节。码表上的全部字符,一个字符占一个字节。字符常量表示方法:用单引号字符常量表示方法:用单引号 将一个字符括起来。将一个字符括起来。例如:例如:A A、1 1等。等。在在C C语言中字符是按其所对应的语言中字符是按其所对应的ASCIIASCII码值来存储的,目前计码值来存储的,目前计算机系统中的字符集有两种:算机系统中的字符集有两种:ASCIIASCII码和码和EBCDICEBCDIC码。码。美国标准信息交换码,美国标准

13、信息交换码,128128个字符,最为常用个字符,最为常用的,是的,是ISOISO(标准化组织)标准的字符集。在(标准化组织)标准的字符集。在其字符集内,每个字符对应唯一的码值(次其字符集内,每个字符对应唯一的码值(次序值),不同字符,码值不同。例如:序值),不同字符,码值不同。例如:0 0表示数字字符表示数字字符0 0,其码值为,其码值为4848;A A表示字母表示字母字符字符A A,其码值为,其码值为6565等。等。ASCIIASCII字符集内,数字符集内,数字、大写、小写字母的大小关系为:字、大写、小写字母的大小关系为:0 0 9 9 A A Z Z a a z z(扩充的交换码,(扩充的

14、交换码,256256个字符)个字符)C C语言中有两种类型的字符常量:语言中有两种类型的字符常量:用单引号用单引号 括起来的一个(单个)字符。括起来的一个(单个)字符。例如:例如:a a、$、=、3 3等。等。通常使用转义字符表示通常使用转义字符表示ASCIIASCII码字符集中不可打印的码字符集中不可打印的 控制字符以及具有特定功能的字符。控制字符以及具有特定功能的字符。转义字符用(转义字符用()开头后面跟一个字符或一个八进制)开头后面跟一个字符或一个八进制 或十六进制数表示。例如:或十六进制数表示。例如:nn表示换行,表示换行,tt表示表示 横向跳格。横向跳格。(1 1)每个字符常量数据只

15、能是一个字符,不能是一串字符。)每个字符常量数据只能是一个字符,不能是一串字符。(2 2)字符)字符1 1和数字和数字1 1的区别:前者是字符常量,后者是整型常量。的区别:前者是字符常量,后者是整型常量。它们的含义和在计算机中的存储方式都不相同。它们的含义和在计算机中的存储方式都不相同。(3 3)字符常量可以像整型常量(整数)一样在程序中参与相关的)字符常量可以像整型常量(整数)一样在程序中参与相关的 运算。例如:运算。例如:A A+32;/+32;/*执行结果执行结果65+32=9765+32=97,是,是a a的的ASCIIASCII码值码值*/结果演示结果演示22.c22.c由于跟在由于

16、跟在“”后后的字符已不代表的字符已不代表原来的字符含义原来的字符含义了,所以称其为了,所以称其为转义字符。转义字符。字符型字符型字符串常量:字符串常量:用一对双引号用一对双引号“”阔起来阔起来0 0个或多个字符组成的字个或多个字符组成的字符符 序列。串是一组字符。序列。串是一组字符。例如:例如:“”“”空串(空串(0 0个字符)个字符)“a a”是由一个字符是由一个字符a a构成的字符串构成的字符串“Happy new YearHappy new Year”是由多个字符序列构成的字符串是由多个字符序列构成的字符串“abcnabcn”是由多个字符构成的字符串是由多个字符构成的字符串“”不是空串,

17、是空格串不是空串,是空格串1.1.C语言规定字符串的最后必须以空字符语言规定字符串的最后必须以空字符0结尾。这个结束符是结尾。这个结束符是C语语 言自动加上的,空字符并不计算在字符串的长度里,但是存储时,言自动加上的,空字符并不计算在字符串的长度里,但是存储时,空字符将会额外的占用一个字节空间。空字符将会额外的占用一个字节空间。例如:例如:字符串字符串“”ABCABC”的长度是?的长度是?字符串字符串“xab107Axab107A”的长度?的长度?2.2.字符序列中的字符个数称为字符串的长度。对字符串的理解中比较字符序列中的字符个数称为字符串的长度。对字符串的理解中比较 容易出错的是当字符串中

18、出现转义字符时字符串长度的确定。容易出错的是当字符串中出现转义字符时字符串长度的确定。#1#1:a a 与与“a a”是不同的:是不同的:a a 表示的是字符常量,在内存中占一个字表示的是字符常量,在内存中占一个字 节;而节;而“a a”表示的是字符串常量。在内存中占表示的是字符串常量。在内存中占2 2个字节。个字节。#2#2:一个字符串常量的存储长度要比它实际的字符串长度多一个字节一个字符串常量的存储长度要比它实际的字符串长度多一个字节 (字符)。(字符)。所以:所以:字符串常量与字符常量的区别是:字符串常量与字符常量的区别是:1 1)书写格式不同:)书写格式不同:与与“”“”2 2)表现形

19、式不同:一个与多个)表现形式不同:一个与多个 3 3)存储方式不同:长度不同)存储方式不同:长度不同 在内存中,字符常量的存储只占用一个字节,而字符串常量存储在内存中,字符常量的存储只占用一个字节,而字符串常量存储时,时,C C语言编译系统将自动在字符串的尾部加上一个特殊的字符语言编译系统将自动在字符串的尾部加上一个特殊的字符00,作为字符串结束的标志。系统依据此标志进行判断该字符串是否结束。作为字符串结束的标志。系统依据此标志进行判断该字符串是否结束。字符串字符串符号常量:符号常量:在在C C语言中允许程序中的常量定义为一个标识符,这个语言中允许程序中的常量定义为一个标识符,这个 标识符称为

20、符号常量。既带有名字的常量。标识符称为符号常量。既带有名字的常量。符号常量必符号常量必须在使用前须在使用前先定义先定义定义格式:定义格式:#define#define 优点优点:简化书写格式、减少出错率;简化书写格式、减少出错率;可以和常量一样进行运算,一旦要求有所变化,只需更改可以和常量一样进行运算,一旦要求有所变化,只需更改 宏定义。宏定义。例如:例如:#define AGE 35#define AGE 35#define M 1.9734067e9#define M 1.9734067e9符号常量不同于变量,在其作用域内不能被改变和重新赋值。符号常量不同于变量,在其作用域内不能被改变和重

21、新赋值。习惯上,符号常量名用大写英文标识符,而变量名用小写英文标识习惯上,符号常量名用大写英文标识符,而变量名用小写英文标识 符,以示区别。符,以示区别。定义符号常量可以提高程序的可读性,便于程序的调试和修改。因定义符号常量可以提高程序的可读性,便于程序的调试和修改。因 此在定义符号常量名时,应尽量使其表达它所代表的常量的含义。此在定义符号常量名时,应尽量使其表达它所代表的常量的含义。符号常量符号常量变量变量:就是在程序运行过程中其值发生改变(可以被改变)的量值。就是在程序运行过程中其值发生改变(可以被改变)的量值。变量的变量的命名命名:变量的变量的定义定义:变量的变量的属性与赋值属性与赋值:

22、变量的变量的引用原则引用原则:C C语言规定所有用到的变量都必须在程序中指定其数据类型,语言规定所有用到的变量都必须在程序中指定其数据类型,必须必须“先定义后使用先定义后使用”,一个变量应该有一个名字(标识符),一个变量应该有一个名字(标识符),一种数据类型以及一个数据值。一种数据类型以及一个数据值。定义变量时要给其命名;该变量在内存中占据一定的存储单元,定义变量时要给其命名;该变量在内存中占据一定的存储单元,编译系统根据定义的变量的数据类型为其分配存储单元并在该存储编译系统根据定义的变量的数据类型为其分配存储单元并在该存储单元中存放变量的值。单元中存放变量的值。变量的命名:变量的命名:注意:

23、注意:1.C1.C语言规定标识符只能由字母、数字和下划线组成。且第一个语言规定标识符只能由字母、数字和下划线组成。且第一个 字符必须是字母或下划线。字符必须是字母或下划线。2.2.大、小写字母被认为是不同的变量名。大、小写字母被认为是不同的变量名。SunSun、sunsun、SUNSUN是三个是三个 不同的变量。为了避免混淆,应该为变量取不同的名字而不不同的变量。为了避免混淆,应该为变量取不同的名字而不 是用大小写区分。是用大小写区分。3.3.变量名的长度无统一的规定,但在取名时长度尽量在变量名的长度无统一的规定,但在取名时长度尽量在3131位有效位有效 字符之内。字符之内。4.4.尽量取与变

24、量含义接近的名称。尽量取与变量含义接近的名称。C C语言允许将值存放在变量中,语言允许将值存放在变量中,C C程序中出现的每个变量,都是程序中出现的每个变量,都是 由用户在程序设计时按照标识符的规则取名并定义的。每个变由用户在程序设计时按照标识符的规则取名并定义的。每个变 量都由一个变量名来标识。量都由一个变量名来标识。命名命名变量定义具有二个目的:变量定义具有二个目的:(1 1)定义变量名。)定义变量名。(2 2)定义变量的数据类型。)定义变量的数据类型。变量定义的格式变量定义的格式:type namelisttype namelist;例如:例如:int aint a,b23b23,C_1

25、23C_123;数据类型的数据类型的类型标识符类型标识符准备声明的变准备声明的变量名称列表量名称列表当同时声明多个变量当同时声明多个变量时,需要将变量名之时,需要将变量名之间用间用“,”逗号分隔开。逗号分隔开。注意:注意:任何一个变量都必须具有确定的任何一个变量都必须具有确定的数据类型,变量类型告诉数据类型,变量类型告诉 C C该变该变量的用法以及保存的方法。不管量的用法以及保存的方法。不管变量的值怎样变化,必须符合该变量的值怎样变化,必须符合该类数据类型的规定(形式和规则类数据类型的规定(形式和规则两个方面)。两个方面)。变量的基本数据类型:变量的基本数据类型:整型变量整型变量、实型变量实型

26、变量、字符型变量字符型变量变量的定义变量的定义变量的定义说明了变量叫什么以及变量的定义说明了变量叫什么以及用来做什么。定义一个变量的过程,用来做什么。定义一个变量的过程,实际上就是向内存申请一个变量的实际上就是向内存申请一个变量的数据类型大小的空间的过程。变量数据类型大小的空间的过程。变量实质上就是内存某一单元的标识符实质上就是内存某一单元的标识符号,对这个符号的引用就是对相应号,对这个符号的引用就是对相应的内存单元的存取操作。的内存单元的存取操作。整型变量:整型变量:整型类型的标志是整型类型的标志是intint,一个整型变量可以保存一个整数。,一个整型变量可以保存一个整数。C C语言提供的整

27、型变量有:语言提供的整型变量有:基本型(基本型(intint)短整型(短整型(short int short int、shortshort)长整型(长整型(long int long int 、long long)无符号整型(无符号整型(unsigned intunsigned int、unsigned long unsigned long、unsigned shortunsigned short)一般:一般:以一个机器字(以一个机器字(wordword)存放一个)存放一个intint型数据,而型数据,而long intlong int型数据型数据 的字节数应不小于的字节数应不小于intint

28、型,型,short intshort int型数据的字节数应不长于型数据的字节数应不长于 intint型。型。注意:注意:使用某种类型的变量时,一定要注意该类型变量的取值范围。使用某种类型的变量时,一定要注意该类型变量的取值范围。例如:例如:int aint a,b b,c c;long ilong i,j j;整型整型实型变量:实型变量:C C语言提供的实型变量有两种类型:语言提供的实型变量有两种类型:单精度(单精度(floatfloat)和双精度()和双精度(doubledouble)定义格式定义格式:floatfloat(doubledouble);例如:例如:float afloat

29、a,b b,c c;double ddouble d,e e,f f;在一般系统中,在一般系统中,C C语言对一个语言对一个floatfloat型实数提供型实数提供4 4个字节的存储单个字节的存储单元,而对一个元,而对一个doubledouble型实数则提供型实数则提供8 8个字节的存储单元。个字节的存储单元。floatfloat可存可存放放7 7位有效数据,位有效数据,doubledouble可提供可提供15-1615-16位的有效数据。位的有效数据。例如:例如:float afloat a;a=98765.4321 a=98765.4321;double bdouble b;b=98765

30、.4321b=98765.4321;注意:注意:(1 1)运用实数运算时要注意数据的范围。)运用实数运算时要注意数据的范围。例如:例如:float afloat a;a=0.000000011a=0.000000011;需要用;需要用doubledouble来进行定义。来进行定义。(2 2)一个实型常量可以赋给)一个实型常量可以赋给floatfloat或或 doubledouble型变量,根据变量的型变量,根据变量的 类型截取实型常量的相应有效位数。类型截取实型常量的相应有效位数。实型实型演示演示23.c字符变量:字符变量:用来存放用来存放一个一个字符常量。字符常量。即一个字节存放一个字符。即

31、一个字节存放一个字符。格式:格式:char char ;例如:例如:char c1char c1,a2a2;不能将一个字符串常量赋给一个字符变量。不能将一个字符串常量赋给一个字符变量。例如:例如:char c1char c1,c2c2;c1=c1=a a ;c2=c2=b b ;合法:合法:占一个字节占一个字节例如:例如:char c1char c1,c2c2;c1=c1=“a a”;c2=c2=“abcabc”;非法:非法:占占2 2个或个或4 4个字节个字节为什么字符数据与整型数据之间可以通用?为什么字符数据与整型数据之间可以通用?字符型的数据在机器内存中是以字符型的数据在机器内存中是以A

32、SCIIASCII码的形式保存的,由于码的形式保存的,由于ASCIIASCII码码的取值范围为的取值范围为0 0255255,可用一个字节存放。字符型数据在内存中以二进制,可用一个字节存放。字符型数据在内存中以二进制码形式存储,而整型数据在内存中也是二进制码的形式。也就是说:字符码形式存储,而整型数据在内存中也是二进制码的形式。也就是说:字符数据与整型数据在内存中的存储格式是一样的。基于这一点,数据与整型数据在内存中的存储格式是一样的。基于这一点,C C语言允许语言允许整型数据与字符型数据通用。实际上字符是一组小整数的集合。整型数据与字符型数据通用。实际上字符是一组小整数的集合。例:例:mai

33、nmain()()char c1 char c1,c2c2;c1=c1=a a;c2=c2=b b;printfprintf(“c1=%cc1=%c,c2=%cnc2=%cn”,c1,c2,c1,c2););printfprintf(“c1=%d,c2=%dnc1=%d,c2=%dn”,c1,c2,c1,c2););c1=97c1=97;c2=98c2=98;printfprintf(“c1=%cc1=%c,c2=%cnc2=%cn”,c1,c2,c1,c2););printfprintf(“c1=%d,c2=%dnc1=%d,c2=%dn”,c1,c2,c1,c2););运行结果:运行结果:

34、c1=a,c2=bc1=a,c2=b 演示演示24.24.c c c1=97,c2=98 c1=97,c2=98 c1=a,c2=b c1=a,c2=b c1=97,c2=98 c1=97,c2=98一个字符型数据既可以以字符一个字符型数据既可以以字符型形式输出也可以按整型数据型形式输出也可以按整型数据格式输出:按字符型形式输出格式输出:按字符型形式输出时系统首先将内存单元中二进时系统首先将内存单元中二进制码值转换为相应的字符,然制码值转换为相应的字符,然后输出这个字符;按整型数据后输出这个字符;按整型数据形式输出一个字符时,直接输形式输出一个字符时,直接输出该字符的出该字符的ASCIIASC

35、II码值。码值。C C编译编译系统根据程序的上下文来决定系统根据程序的上下文来决定取字符本身还是取取字符本身还是取ASCIIASCII码值。码值。C C编译系统首先将编译系统首先将a,ba,b转换为转换为ASCIIASCII码值码值97,9897,98然后存放在内存单元中。然后存放在内存单元中。字符型字符型变量的属性与赋值:变量的属性与赋值:例如:例如:int i;分配;分配2个字节大小的内存个字节大小的内存 空间,以后变量空间,以后变量i的值就从这的值就从这2个个 字节单元中取得。字节单元中取得。内容内容变量变量i内存地址内存地址变量有变量有4 4个属性:个属性:(1)名称:符合标识符的命名

36、规则)名称:符合标识符的命名规则(2)数据类型:必须属于某种数据类型)数据类型:必须属于某种数据类型(3)值:定义一个变量的目的就是为了使用它的内容(值),)值:定义一个变量的目的就是为了使用它的内容(值),没有值的变量是没有意义的。没有值的变量是没有意义的。(4)地址:是系统分配给变量的内存单元之编号。这个内存单)地址:是系统分配给变量的内存单元之编号。这个内存单 元用来存放变量的值。元用来存放变量的值。其中:(其中:(1)()(2)由用户定义,()由用户定义,(4)由系统决定,)由系统决定,而(而(3)来自程序中的赋值。)来自程序中的赋值。i=3就代表变量就代表变量i的内存值为的内存值为3

37、&i 变量赋值的方法:变量赋值的方法:(1)初始化赋值方式(变量赋初值)初始化赋值方式(变量赋初值)C语言允许在定义一个变量的同时对变量进行初始化。语言允许在定义一个变量的同时对变量进行初始化。例如:例如:int i=0;表示定义一个整型变量;表示定义一个整型变量i的同时将的同时将i赋值为赋值为0。注意:注意:如果对几个变量同时赋一个初始值,则可以如果对几个变量同时赋一个初始值,则可以写成写成 float a=3.0,b=3.0,c=3.0;表示;表示a、b、c的初始值均为的初始值均为3.0,但并不表示整个程序中三,但并不表示整个程序中三个变量值一直不变或一直相等。个变量值一直不变或一直相等。

38、int i,j,k;k=10;例如:例如:int i,j,k=10;表示表示i,j,k为整型,只有为整型,只有k被初始化赋值,被初始化赋值,其值为其值为10。(2)赋值语句方式)赋值语句方式 在程序运行过程中用赋值语句给变量赋一个值。在程序运行过程中用赋值语句给变量赋一个值。例如:例如:a=10;例:例:演示演示25.c#define MULTI 123main()()int num1=0;/*赋初值方式赋初值方式*/int num2;int total1=0,total2=0;num2=20;/*赋值语句方式赋值语句方式*/total1=num1+MULTI;total2=2*num2+MU

39、LTI;/*变量使用前要定义变量使用前要定义*/赋值赋值?怎样知道它是否运行?我们需要怎样知道它是否运行?我们需要用某种方式显示结果。用某种方式显示结果。变量的引用原则变量的引用原则 在在C语言程序设计中,变量必须遵循语言程序设计中,变量必须遵循“先定义,后使用先定义,后使用”的原则。的原则。也就是说在具体使用某个变量之前必须对这个变量定义。也就是说在具体使用某个变量之前必须对这个变量定义。例例1:int stroe;STROE=10;例例2:查找错误查找错误 main()()int i,j;i=10;j=20;k=30;sum=i+j;int sum;非法:非法:C编译系统会认为编译系统会认

40、为STORE未被定义未被定义k未定义既被赋值未定义既被赋值先使用,后定义先使用,后定义2.3 C2.3 C语言的运算符语言的运算符用来表示各种数据操作的符号称之为运算符。用来表示各种数据操作的符号称之为运算符。C C语言的运算符有以下几类:语言的运算符有以下几类:(1)算术(自增)算术(自增/自减)运算符:(自减)运算符:(+,*,/,%、+、-)(2)关系运算符:()关系运算符:(,=,=,!=,=)(3)逻辑运算符:()逻辑运算符:(!,&,|)(4)位运算符:()位运算符:(、|、&)(5)赋值运算符:()赋值运算符:(=)(6)条件运算符:()条件运算符:(?:)(7)逗号运算符:(,

41、)逗号运算符:(,)(8)指针运算符:()指针运算符:(*,&)(9)强制类型转换运算符:()强制类型转换运算符:(type)(10)分量运算符:(和)分量运算符:(和 )(11)下标运算符:()下标运算符:()(12)函数调用运算符:()函数调用运算符:(())对运算符的掌握应从三对运算符的掌握应从三个方面着手:个方面着手:和操作符相关的数据类和操作符相关的数据类 型(包括操作数和操作型(包括操作数和操作 结果的数据类型);结果的数据类型);运算符的优先级;运算符的优先级;运算符的结合次序;运算符的结合次序;2.4 C2.4 C语言的表达式语言的表达式概念概念:表达式是由常量、变量、函数通过

42、运算符连接起来而形成:表达式是由常量、变量、函数通过运算符连接起来而形成 的一个算式。的一个算式。求值过程:求值过程:表达式的求值过程实际上是一个数据加工的过程,通过表达式的求值过程实际上是一个数据加工的过程,通过 各种不同的运算符,可以实现不同的数据加工。表达式各种不同的运算符,可以实现不同的数据加工。表达式 代表了一个具体的值。必须按代表了一个具体的值。必须按C规定的规定的原则原则求值。求值。特别地:一个常量、一个变量、一个函数都可以看成是一个表达式。特别地:一个常量、一个变量、一个函数都可以看成是一个表达式。算术算术表达式,如:表达式,如:3+4*5赋值赋值表达式,如:表达式,如:a=3

43、关系关系表达式,如表达式,如:5b逻辑逻辑表达式,如:表达式,如:35&a=b条件条件表达式,如:表达式,如:ab?a:b逗号逗号表达式,如:表达式,如:a=3,b=4,c=5指针表达式,如:指针表达式,如:p-2,&a(在指针一章介绍)(在指针一章介绍)C C语言允许使用以下类型表达式:语言允许使用以下类型表达式:练习练习表达式的求值原则:表达式的求值原则:在一个表达式中可以包含不同类型的运算符。在一个表达式中可以包含不同类型的运算符。例如:例如:a+bc&c+d,=,=,=)高于()高于(!=,=)表达式可以是常量、变量、表达式可以是常量、变量、算术表达式或关系表达式算术表达式或关系表达式

44、结合方向结合方向:自左向右:自左向右例如:例如:int a=2;float b=3.4;ab的结果值为的结果值为1(真)(真)a+b b b的结果为的结果为1关系关系“逻辑逻辑”是指连接关系的方式。是指连接关系的方式。由逻辑运算符(由逻辑运算符(&、|、!)连接的表达式构成。其结果为整数值)连接的表达式构成。其结果为整数值0(逻辑假)(逻辑假)或或1(逻辑真)。(逻辑真)。:逻辑非(:逻辑非(!)的级别高于算术运算符,而逻辑与和逻辑或)的级别高于算术运算符,而逻辑与和逻辑或 的优先级(相同)低于关系运算符。的优先级(相同)低于关系运算符。表达式可以是常量、变表达式可以是常量、变量、或其他表达式

45、量、或其他表达式自左向右自左向右例如:例如:int a=3,b=4,c=5;(ac)为)为0 注意:注意:1.对于逻辑表达式对于逻辑表达式A&B(与运算),只有当(与运算),只有当A与与B的值全部为真的值全部为真时,时,A&B的结果值为真,否则为假。的结果值为真,否则为假。2.对于逻辑表达式对于逻辑表达式A|B(或运算),只要(或运算),只要A或或B的值有一个为真时,的值有一个为真时,A|B的结果值为真,只有当的结果值为真,只有当A与与B的值全部为假时,的值全部为假时,A|B的结果值的结果值为假。为假。3.对于逻辑表达式对于逻辑表达式!A(非运算),当(非运算),当A的值为假(的值为假(0),

46、则),则!A的值的值为真(为真(1);若);若A的值非的值非0,则,则!A的值为的值为0。逻辑逻辑由条件运算符连接它的三个运算对象构成的表达式称之由条件运算符连接它的三个运算对象构成的表达式称之为条件表达式,其结果可以是任何类型。为条件表达式,其结果可以是任何类型。高于赋值运算符高于赋值运算符自右向左自右向左执行过程是:执行过程是:求解表达式求解表达式1的值?的值?为真:求解表达式为真:求解表达式2的值,并的值,并将表达式将表达式2的值作为整个条件的值作为整个条件表达式的结果值;表达式的结果值;为假:求解表达式为假:求解表达式3的值,并的值,并将表达式将表达式3的值作为整个条件的值作为整个条件

47、表达式的结果值。表达式的结果值。例如:例如:int a=2;float b=5.2;求求!a?2*b:b的结果。的结果。条件运算符的优先级高于赋值运算符,而低于算术运算符和关条件运算符的优先级高于赋值运算符,而低于算术运算符和关 系运算符。所以(系运算符。所以(xy)?x:(y+1)等同于)等同于xy?x:y+1条件表达式中,三个运算对象的类型可以不相同。例如:条件表达式中,三个运算对象的类型可以不相同。例如:x?a:0.5条件运算遵循条件运算遵循“自右向左自右向左”方向的结合原则。方向的结合原则。所以所以 xy?x:zw?z:w 等同于等同于xy?x:(zw?z:w)条件条件执行过程:执行过

48、程:先求解表达式先求解表达式1的值,的值,再求解表达式再求解表达式2的值,的值,最后求解表达式最后求解表达式n的值,的值,并将表达式并将表达式n的值作为的值作为整个表达式的结果值。整个表达式的结果值。逗号表达式逗号表达式 由逗号连接符(,)与表达式构成。其结果为最后一由逗号连接符(,)与表达式构成。其结果为最后一个表达式的结果值。可以是任何类型。个表达式的结果值。可以是任何类型。优先级优先级:级别最低(既最后进行逗号运算)级别最低(既最后进行逗号运算)结合方向:结合方向:自左向右自左向右例如:例如:int a=2;float b=5.2;2*a,2*b的结果值是多少?的结果值是多少?:(1)不

49、是出现逗号的地方都是逗号表达式,逗号在)不是出现逗号的地方都是逗号表达式,逗号在C语言中用于语言中用于 语句之中的参数分隔符。语句之中的参数分隔符。(2)在多数情况下,使用逗号表达式的目的是要分别求出每个表)在多数情况下,使用逗号表达式的目的是要分别求出每个表 达式的结果值。这在循环结构中经常使用。达式的结果值。这在循环结构中经常使用。(3)逗号运算符)逗号运算符,的优先级要比赋值运算符的优先级要比赋值运算符=的优先级低,所的优先级低,所 以以a=b,c和和a=(b,c)的值不同。)的值不同。条件条件【例例1】设设a=3,b=4,c=5,表达式表达式a+b,b*5,a=b+4的值?的值?0【例

50、例2】设设int x,a;表达式表达式x=(a=4,6*2)的的x值?值?表达式表达式x=a=4,6*2的的x值?值?x为为12为为4【例例3】设设 int b=7;float a=2.5,c=4.7;表达式表达式a+(int)()(b/3*(int)()(a+c)/2)%4的值?的值?5.500000【例例4】int x=10,y=9;int a,b,c;a=(-x=y+)?x:-y;b=x+;c=y;a,b,c的结果是?的结果是?分别为分别为8,8,10【例例5】若若a和和b均为均为int类型的变量,则执行类型的变量,则执行 下面程序段后的输出结果是:下面程序段后的输出结果是:x=15;y

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言的基本数据类型及其运算课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|