4.数据类型、表达式2

合集下载

基本数据类型和表达式

基本数据类型和表达式

优先级:
〈、〉、<=、 >=四种比==、!=两种要高 要求: 两个操作数为同一类型 其结果值为1(代表逻辑真)或0(代表逻辑假)。
逻辑运算符
三种逻辑运算符: &&(逻辑与)、||(逻辑或)、!(逻辑非)。 其中逻辑非为单目运算符,逻辑与和逻辑或为双 目运算符。 优先级: !的优先级最高,而&&又比||要高。 逻辑表达式中的操作数是作为逻辑量,但C++并 不专门提供逻辑类型,只用1与0来代表逻辑结果真 与假。对于参与逻辑运算的操作数,其值为0代表 逻辑假,为非0时代表逻辑真。 如: !(a= =9)
4. 字符串常量
字符串常量:双引号括起来的一串字符 例 "3a9d#=s" "2天津ABC"
存储:在内存中依次存放每个字符的ASCII码, 尾部自动加字符串结束标志'\0',即:
00110000 01000001 0011100101000100
3
a
9
d
# = s \0
长度:为该串中含字符的个数,不含结束标志 \0。上例串长度为:7
算术运算符
2、增1和减1运算符
增量操作表示加1,减量操作表示减1。 a值 5 如:int a=4; 前增量 a++; //等效于a=a+1; 5 表达式值 ++a; //等效于a=a+1; a--; //等效于a=a-1; a值 5 --a; //等效于a=a-1; 后增量 4 表达式值 增量操作符有前增量与后增量之分。 前增量操作++a的意义为:先修改操作数的值再 将增1后的a值作为表达式的值。 而后增量操作a++的意义为:先将a的值作为表 达式的值确定下来,再将a增1。

3_数据类型、运算符和表达式

3_数据类型、运算符和表达式

基本数据类型 ●字符型
字符常量是用单引号括起来的一个字符。例如’ 字符常量是用单引号括起来的一个字符。例如’a’,’b’,’=’,’+’,’?’都是合 都是合 字符常量。 语言中,字符常量有以下特点: 法 字符常量。在C语言中,字符常量有以下特点: 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 字符常量只能用单引号括起来, 字符常量只能用单引号括起来 不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 字符常量只能是单个字符, 字符常量只能是单个字符 不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参 字符可以是字符集中任意字符。 字符可以是字符集中任意字符 与数值运算。 是字符常量, 与数值运算。如’5’和5 是不同的。’5’是字符常量,不能参与运算。 和 是不同的。 是字符常量 不能参与运算。 转义字符是一种特殊的字符常量。转义字符以反斜线“ 开头 开头, 转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一 是一种特殊的字符常量 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义, 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称 转义”字符。 广义地讲, “转义”字符。 广义地讲,C语言字符集中的任何一个字符均可用转义字 符来表示。 正是为此而提出的。 符来表示。\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六 和 正是为此而提出的 和 分别为八进制和十六 进制的ASCII代码。如\101表示字母 A" ,\102表示字母 代码。 表示字母" 表示字母"B",\134表示反 进制的 代码 表示字母 表示字母 , 表示反 斜线, 表示换行等。 斜线,\XOA表示换行等。 表示换行等

C语言教程课件第二章 数据类型、运算符和表达式

C语言教程课件第二章 数据类型、运算符和表达式

例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算

电大C语言程序设计 第2章 基本数据类型和表达式

电大C语言程序设计 第2章 基本数据类型和表达式

第2章 基本数据类型和表达式 章 2.2.3 枚举常量
枚举常量是枚举类型中的值,即枚举值。 枚举常量是枚举类型中的值,即枚举值。 枚举类型定义: 枚举类型定义: enum <枚举类型名 枚举类型名>{<枚举表 ; 枚举表>}; 枚举类型名 枚举表 (1)enum color{red,yellow,blue}; (2)enum day{Sun,Mon,Tues,Wed,Thur,Fri,Sat};
第2章 基本数据类型和表达式 章 2.2.5 地址常量 指针类型的值域范围: 指针类型的值域范围:0~(232-1),每一个整数 , 代表内存空间中一个对应单元的存储地址。 代表内存空间中一个对应单元的存储地址。 用户可以直接使用整数0作为地址常量 作为地址常量, 用户可以直接使用整数 作为地址常量,称为 空地址常量,对应的符号号常量在stdio.h中定义,其值为整数 。 中定义, 号常量在 中定义 其值为整数0。
第2章 基本数据类型和表达式 章 2.3 变量 变量是用标识符表示的、 变量是用标识符表示的、其值可以被改变的 量。 1.变量定义语句 变量定义语句 <类型关键字 <变量名 [=<初值表达式 类型关键字> 变量名> 初值表达式>],…; 类型关键字 变量名 初值表达式
第2章 基本数据类型和表达式 章 2.3 变量 2.语句格式举例 语句格式举例 (1)int a,b; (2)char ch1=‘a’,ch2=‘A’; (3)int x=a+2*b; (4)double d1,d2=0.0,d3=3.14159; 3.语句应用举例 见circle.c 语句应用举例
第2章 基本数据类型和表达式 章 2.2.3 枚举常量
(1)enum color c1,c2,c3; (2)enum day today,workday; (3)c1=red; (4)workday=Wed; enum day {Sun=7,Mon=1,Tues,Wed,Thur,Fri,Sat};

C语言的基本数据类型与表达式

C语言的基本数据类型与表达式

C语言的基本数据类型与表达式在C语言中,基本数据类型是构建程序的基石。

了解基本数据类型以及如何使用它们进行表达式运算是学习和掌握C语言的重要一步。

基本数据类型C语言的基本数据类型可分为整型、浮点型、字符型和指针类型。

整型C语言提供了不同大小的整型数据类型,包括char、int、short 和long。

它们在存储空间和表示范围上都有所不同。

•char类型用来存储字符,占用一个字节的空间。

可以用来存储ASCII码的字符或者表示-128到127之间的整数。

•int类型一般占用4个字节的空间,表示范围约为-2147483648到2147483647之间的整数。

•short类型一般占用2个字节的空间,表示范围约为-32768到32767之间的整数。

•long类型一般占用8个字节的空间,表示范围约为-9223372036854775808到9223372036854775807之间的整数。

浮点型C语言提供了两种浮点型数据类型:float和double。

•float类型用来存储单精度浮点数,占用4个字节的空间。

它的表示范围为大约1.2E-38到3.4E38,精度约为6位小数。

•double类型用来存储双精度浮点数,占用8个字节的空间。

它的表示范围为大约2.3E-308到1.7E308,精度约为15位小数。

字符型char类型可以用来存储单个字符,它的大小为一个字节。

在C语言中,字符使用ASCII码表示。

指针类型指针类型用来存储变量的内存地址。

使用指针可以间接地访问和修改变量的值。

指针类型在C语言中非常重要,它可以用来实现动态内存分配和数据结构等高级功能。

表达式在C语言中,表达式由操作数和运算符组成。

操作数可以是变量、常量或者表达式的结果,而运算符用来指定操作数之间的运算规则和顺序。

C语言支持多种运算符,包括算术运算符、关系运算符、逻辑运算符等。

算术运算符C语言提供了常见的算术运算符,包括加法+、减法-、乘法*、除法/和取余%。

第二章数据类型与表达式

第二章数据类型与表达式
无符号数也可用后缀表示,整型常数的无符号数的后缀为“U” 或“u”。例如:358u,0x38Au,235Lu均为无符号数。
返回本讲目录
2)浮点型常量 浮点型常量也称为实数或者浮点数。在C++中,实数
只采用十进制。它有两种形式:十进制小数形式和 指数形式。
(1)十进制小数形式。由数字0~9和小数点(注意: 必须有小数点)组成,小数点前后如果有单独的0 可以省略。如:123.45、-256.7、0.0、.25、12.都 是合法的小数。
变量定义的一般格式为:
数据类型 变量名1,变量名2,…,变量名n;
在定义一个变量的同时,也可以用赋值运 算符给它赋以初值,称为变量初始化。
变量初始化的格式如下:
数据类型 变量名1=初值1 , 变量名2=初值2 , … , 变量名n=初值n;
“=”在C++中不是数学中的“等于号”, 而是赋值号,它表示把“=”右边的数据存 放在左边的变量表示的存储单元中。
本章学习内容
掌握各种基本数据类型的关键字、数据长度 和表示范围;
掌握各种类型的数值表示; 弄清变量以及变量赋值的实质、标识符的构
成规则; 弄清常量与变量之间的区别; 掌握常用的运算符的含义、优先级和使用方
法; 掌握隐式和显式类型转换的概念和使用方式。
本章目录
第二讲 C++的数据类型、常量与变量 第三讲 运算符与表达式 本章小结
(3)十六进制整数。十六进制整常数的前缀为0X或0x,其数字 取值范围为0~9、A~F或a~f。例如:0X1C、0XFFFF等。
(4)整型常数的后缀。如果使用的数值超过了基本整型数据的 取值范围,就必须用长整型数来表示。长整型数是用后缀 “L”或“l”来表示的。例如:158L、077L和0XA5L等。

4数据类型及表达式

4数据类型及表达式

2.浮点常量
实型也称为浮点型。实型常量也称为实 数或者浮点数。实型常量不分单、双精度, 都按双精度double型处理,其有效位数为15 ~16位。
(1)小数形式
小数形式由数码0~ 9和小数点组成。当 某浮点数整数部分或小数部分为0时,0可以省 略,但小数点不可省略。 例如:
0.0,.25,5.789,0.13,5.0,300., 267.8230,123.等均为合法的实数。
4.2.2 变量 1.变量的基本知识 在程序的执行过程中值可以发生变化的量 称为变量。
(1)变量的命名。
变量的命名符合标识符的规定。变量名 决定了某一变量在内存中的位置,即地址。 如变量a的地址就是&a。
(2)一个变量占据一定字节的存储空间。 在存储空间中存放变量的值。由于变量 所表示的数据可以是除void以外的任意类型 的数据,所以变量在内存中所占的存储空间 根据数据类型的不同而不同。 每一个变量有而且只能有一种类型,变 量的类型决定了该变量在内存中所占的字节 数。在变量进行相关运算时,变量的类型是 编译系统检查运算是否合法的依据。
3.变量的初始化 变量在使用前应该有确定的值。在程序中常常 需要对变量赋初值,以便使用变量。 [ 修饰符 ] 类型说明符 变量 1= 值 1 ,变量 2= 值 2 , ……; 例如:
int a =5; /*初始化变量a为5*/ float x=3.2,y=1.2e10; /* 初 始 化 x 为 3.2 , y 为 1.2x1010*/ char ch='K'; /*初始化ch为'K'*/ int d=5; /*初始化d为5*/ int b=d; /*初始化b为5,在int b=d;定义时d应有确定的 值*/
③ 长整型

数据类型、运算符和表达式数据、类型、运算符、表达式

数据类型、运算符和表达式数据、类型、运算符、表达式

字符型
字符型数据类型用于 存储单个字符。
字符型数据类型可以 用单引号或双引号括 起来表示一个字符常 量。
在大多数编程语言中, 字符型数据类型通常 用一个字节来表示。
布尔型
布尔型数据类型用于存储逻辑值, 即真(true)或假(false)。
布尔型数据类型通常用于条件判 断、逻辑运算等场合。
在大多数编程语言中,布尔型数 据类型通常占用一个字节的空间。
数据类型、运算符和表达式
目录
• 数据类型 • 运算符 • 表达式
01 数据类型
整型
01
02
03
04
整型数据类型用于存储整数, 包括正整数、负整数和零。
常见的整型数据类型有:int (整数)、short(短整数)、
long(长整数)、byte(字 节)。
整型数据类型根据其表示范围 可以分为有符号和无符号两种
算术表达式是由算术运算符和 操作数组成的。常见的算术运 算符包括加法、减法、乘法和 除法。
算术表达式的计算顺序遵循先 乘除后加减的原则,同时需要 注意括号内的运算优先级最高。
算术表达式可以包含多个操作 数和运算符,例如:`(a + b) * c - d / e`。
赋值表达式
赋值表达式用于将一个值赋给一 个变量。赋值运算符为“=”。
THANKS FOR WATCHING
感谢您的观看
赋值表达式的一般形式为“变量 = 表达式”,例如:`x = a + b`。
在赋值表达式中,变量必须是已 经声明过的,否则会导致编译错
误。
条件表达式
条件表达式也称为三元运算符,其格 式为“条件 ? 值1 : 值2”。
条件表达式常用于简化复杂的if-else 语句,例如:`max = (a > b) ? a : b`。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

赋值表达式中的类型转换
最终类型:变量的类型
35
赋值表达式中的类型转换
整型 浮点数 浮点数 整型 整型 字符型 字符型 整型 long int int 截断小数位 补小数 .0 符号扩展:1B => 2B 截断高八位,取低8位 补16位(符号位扩展)
,用对应ASCII编 码的二进制形式存储。
例如:‘a’、’1’
转义字符:‘\’,具有控制含义的转义字符, 在输入输出时会引起设备完成相应的动作。
例如: ’\n’、’\0’、’\x17’、’\007’
C语言把字符类型看作一种特别短的整数类型。 允许参与算术运算。 例:‘A’+ 2 表示将‘A’的ASCII码65加2, 结果67是字符‘C’的ASCII码。
6
转义字符 (P38表4-5)
转义字符 \n \t \v \b 功能说明 回车换行 跳格(制表位) 竖向跳格 退格 转义字符 \f \\ \‘ \ddd 功能说明 走纸换页 反斜杠‘\’ 单引号 八进制字符
\“
\r
双引号
回车
\xhh
十六进制字符
7
④字符串常量
字符串:双引号括起来的一串字符 字符串结束标志:‘\0’ 字符串的内部表示方法:使用一片连续的字 节空间,依次存放字符串的每一个字符,在 结尾处加特殊字符‘\0’,表示字符串结束。 注意: 字符和字符串表示形式的区别,’a’和”a”有 什么不同? 数字和数字字符的区别,1和’1’有什么不 同?
33
§4-5 类型转换
在C语言中,整型、实型和字符型数据间可以混 合运算(字符数据与整型数据可以通用)。 如果一个运算符两侧的操作数的数据类型不同, 则系统按“先转换、后运算”的原则,将数据自 动转换成同一类型,然后进行运算。
34
§4-5-1 自动类型转换
算术运算中的类型转换
当某一运算符两侧的操作数类型不一致时,应将 低类型的数据转为高类型的数据 类型的判断:内存中所占字节数
19
§4-4-3 赋值运算符与表达式
赋值符号“=”就是赋值运算符,它的作 用是将一个表达式的值赋给一个变量。 赋值运算符的一般形式为:
变量= 表达式 例如,x = 5+2
如果表达式值的类型,与被赋值变量的 类型不一致,但都是数值型或字符型时, 系统自动地将表达式的值转换成被赋值 变量的数据类型,然后再赋值给变量。
9
§4-3 变量
变量的基本操作: ① 赋值,向变量中存入数据值; ② 取值(引用),取得变量当前存储的值,以 便在计算过程中使用。 变量定义的三个位置: 1、函数或复合结构(一对{}括起来的一段程序) 内所有执行语句的前面。 2、所有函数外面。 3、函数形参表中。
10
①变量的定义
格式: [修饰符] 定义符 变量表列 long int a,b; 功能:
17
例4.1 int i=1,j=3,k; i++;
i=2 j=2 k=2 k=3
--j;
k=i--;
k=++j;
18
说明
自增、自减运算,常用于循环语句中,使 循环控制变量加(减)1,以及指针变量 中,使指针指向下(上)一个地址。 自增、自减运算符,不能用于常量和表达 式。 例如,5++、--(a+b)等都是非法的。 在表达式中,连续使同一变量进行自增或 自减运算时,很容易出错,所以最好避免 这种用法。
32
6.“右移”运算 右移运算符“>>”是双目运算符,其功 能是把“>> ”左边的运算数的各二进制位全 部右移若干位,“>>”右边的数指定移动的 位数。 例 如 , 取 a=15 , 则 a>>2 表 示 把 000001111右移为00000011(十进制3)。 应该注意的问题是,对于有符号数,在 右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1,最高 位是补0或是补1 取决于编译系统的规定。
29
3.“按位异或”运算 按位异或运算符“^”是双目运算符, 其功能是参与运算的两数各对应的二进制 位相异或。当两个对应的二进制位相异时, 结果为1。参与运算数仍以补码方式出现。 例如,9^5可写成算式如下: 00001001 ^ 00000101 00001100 (十进制为12)
不用第三个变量实现两个值的交换:
第四章 数据类型与表达式
1
C语言的数据类型
各种数据类型具有不同的存储方式、取值 范围及允许的操作。
数据类型决定: 短整型 short 整型 整型 1. 数据占内存字节数 int 2. 数据取值范围 长整型 long 单精度 float 基本类型 3. 其上可进行的操作 实型
C数据类型
构造类型 指针 空类型 void
5.“左移”运算 左移运算符“<<”是双目运算符,其 功能是把“<< ”左边的运算数的各二进制 位全部左移若干位,由“<<”右边的数指 定移动的位数。其中,移位过程中,高位 丢弃,低位补0。 例如,a<<4是指把a的各二进制位向 左移动4位。如果a=00000011(十进制3), 左移4位后为00110000(十进制48)。
23
§4-4-5 逗号表达式
运算符:( ,) 用逗号(,)把表达式连接起来的符合C语 言的式子称为逗号表达式 求解:
求解所有表达式的值 逗号表达使得值是最后一个表达式的值 表达式类型的判断: 例如: a=(3,5,7) a=3,5,7 优先级最低原则
赋值表达式 逗号表达式
24
§4-4-6 位运算符
26
00001001 (9的二进制补码) & 00000101 (5的二进制补码) 00000001 (1的二进制补码) 可见,9&5=1。 按位与运算通常用来对某些位清0或保 留某些位。例如,把a 的高8位清0,保 留低8位,可作a&255 运算(255 的二进 制数为0000000011111111)。
15
§4-4-2 自增(减)运算
自增(++)、自减(- -)运算 自增运算使单个变量的值加1,自减运算 使单个变量的值减 1 例如:
int a,b=1; b++; ++b;
16
表达式与运算规则
自增、自减运算符都有两种用法:
前置运算──运算符放在变量之前: ++变量、--变量 先使变量的值增(减)1,然后再以变化 后的值参与其它运算,即先增减、后运算。 后置运算──运算符放在变量之后: 变量++、变量-- 变量先参与其它运算,然后再使变量的值 增(减)1,即先运算、后增减。
②浮点型常量
小数形式。由数字和小数点组成,必须有小数 点。 例:4.23、0.15、.56、0.0 指数形式。以幂的形式表示,以字母e或E后跟 一个以10为底的幂数。字母e或E之前必须要有 数字,且字母e或E后面的指数必须为整数,字 母e或E的前后及数字之间不得有空格。 例:2.3e5、500e-2、4.5e0 而e4、0.5e3.6、.e5、e不合法
双精度 double 字符型 char 数组、结构体 struct、 共用体 union、枚举类型 enum
2
§4-2 常量
整型常量 浮点型常量 单字符常量 字符串常量 符号常量
3
①整型常量
十进制表示:用一串连续的数字表示十进制数。负数 在前面加负号‘-’,除表示整数0外,不以0开头。后 缀‘l’或‘L’表示长整型,‘u’或‘U’表示无符号数。
12
③整型变量和字符型变量的关系
字符型数据在内存中以ASCII码值对应的整 数存储 整型和字符型数据有对应表示的关系
main() { int a=65; char c='A'; printf("%d,%c,%d,%c",a,a,c,c); }
执行结果:
65,A,65,A
13
§4-4 运算符与表达式
运算符:C语言中描述数据运算的特殊符号。 表达式:用运算符将C语言的各种运算对象连 接起来,组成符合C语法要求的式子,称表达 式。运算对象包括常量、变量、函数等。 计算:表达式的求值过程称计算。 C的运算符主要分为四大类:
算术运算符 关系运算符与逻辑运算符 位运算符 特殊运算符(赋值/条件/逗号/指针/求字节/强制类 型转换/分量/下标/函数调用)
14
§4-4-1算术运算符与表达式
五种基本算术运算符
+、-(减法/取负)、*、/、%(求余,模运算符)
关于除法运算/
C 语言规定:两个整数相除,其商为整数,小数部 分被舍弃。 例如:5 / 3 = 1 。
关于求余数运算%
5%3 =2 5%2 = 1 要求两侧的操作数均为整型数据,否则出错。
a=a+b;b=a-b;a=a-b;
a=a^b;b=a^b;a=a^b;
30
4.“按位求反”运算 求反运算符“~”为单目运算符,具 有右结合性,其功能是对参与运算的数 的各二进制位按位求反。例如,~ 9的运 算: ~(0000000000001001) 结果为 1111111111110110
31
345、31684、0、-23456、459L、356l、567LU 八进制表示:以数字0开头的一个连续数字序列,序列 中只能有0-7这八个数字。后缀和负号的使用与十进制 相同。 045、-077、06745L、而019、423 非法八进制数。 十六进制表示:以0X或0x开头的连续数字和字母序列, 序列中只能有0-9、A-F和 a-f这些数字和字母。后缀 和负号的使用与十进制相同。 例:0x10 0X255 0xd4ef 0X6a7bL 4
27
/*程序功能:“按位与”运算示例*/ main( ) { int a=9,b=5,c; c=a&b; printf("a=%d\nb=%d\nc=%d\n",a,b,c); } 程序运行结果: a=9 b=5 c=1
相关文档
最新文档