第2章 数据类型运算符和表达式
第2章 c语言基本数据类型、运算符和表达式

1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,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,可以和常量一样进行运算
第二章+数据类型、运算符和表达式

格式项的一般形式为:
%[附加格式] 格式控制符
方括号中的内容可以缺省。
附加格式控制
含义说明
l(小写字母)
m
数据最小输出宽度(一个具体正整数)
.n(一个具体 对实数,表示输出几位小数;对字 正整数) 符串,表示截取的字符个数
-(负号) 输出的数据域内向左对齐
+(正号) 要求正数和0带正号输出,负数带符 号输出
变量的定义 格式为: 类型 变量列表;
可同时定义多个同类型的变量,之间用逗 号分隔。 变量的初始化 1. 变量定义时:格式为 类型 变量名=常数; 2. 变量定义后:通过赋值语句实现
2019/7/20
变量的作用域:变量能够起作用或者 可以被使用的程序范围。由定义的位 置决定
1. 局部变量:在函数内部定义的变量, 只在其定义的某个函数或复合语句范 围内有效。
3) 例题分析:example25
2019/7/20
4. 寄存器变量:程序运行时存储在CPU寄 存器中的变量,只用于局部变量,要求 是整型和字符型变量。说明符“register”
5. 外部变量:表示该变量可以在程序中的 任何地方使用,包括定义此变量的源文 件之外,作用域为整个工程。只能用于 全局变量。说明符为“extern”。
a string”
2019/7/20
注意:“A”与‘A’完全不同,前者是字 符串,后者是字符,它们在内存中的存 贮空间并不相同。 在字符串中使用双引号必须以“\”” 表示。
实例 example22 符号常量:用标识符命名的常量,可代
替常量 在程序中直接使用。 1. 使用C语言中的一个预编译指令#define
整型常量:可以用十进制、八进制和十 六进制来表示。 a.十进制整数:[ ± ]若干各0~9的数字。 如12, 0 ,-234等
C语言程序设计 第2章 数据类型

2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
C语言第02章 数据类型、运算符与表达式

回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
C语言 第2章 类型、运算符与表达式(2.4~2.7)

数据类型、运算符和表达式
主要内容
2.1 预备知识 2.2 常量和变量的概念 2.3 各种数据类型的常量及变量 2.4 变量赋初值 2.5 不同类型数据之间的混合运算 2.6 常用运算符和表达式 2.7 输入函数与输出函数
2
2.4.1 变量和内存的概念
变量: 程序运行过程中其值可以改变的量。 系统为程序中的每一个变量开辟存储单元。 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
37
2.7.1
格式输出函数printf
printf函数一般格式: printf(格式控制,输出表列) 格式控制是由双引号括起来的字符串,包含三种信息: 1、格式说明:由“%”和格式字符组成,如%d,%f等。 它的作用是将输出的数据按照指定的格式输出。 2、普通字符:需要原样输出的字符。 3、转义字符:用于控制输出。 输出表列是一些要输出的数据。
27
2.5 数据的混合运算
1、自动转换
• 运算转换
• 赋值转换 2、强制类型转换
28
1、自动转换—运算转换
在进行运算时,不同类型的数据要先自动转换成 同一类型,然后进行运算。转换的规则按图所示。
double← float
long unsigned 转换由编译系统自动完成。 转换按数据长度增加的方向进行, 即按“向高看齐”的原则提升“ 较低”类型,以保证不降低精度。
33
2、强制类型转换
注意:对一个变量进行强制转换后,得到一个新的 类型的数据,但原来变量的类型不变。 例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i, 但 x 仍为实型,值为2.6。
第2章数据类型、运算符和表达式

(2)预定义的标识符 预定义的标识符在C语言中都有特殊含义,如 scanf和 printf 是库函数名,系统中用来作为输入输出函数。用户一般不要用 它们作为自定义标识符。 (3)用户自定义标识符 在程序中使用的变量名、符号常量名、函数名、数组名、类 型名、文件名、标号名等有效的字符序列,除库函数的函数名、 关键字由系统定义外,其余都由用户自定义,统称为用户自定 义标识符。 例如: total,area,_ab,sum,average,student_name,等 都是合法的标识符。 标识符虽然可由程序员随意定义,但标识 符是用于标识某个量的符号。因此,命名应尽量有相应的意义, 以便阅读理解,做到“见名知义”。 变量名要用小写字母,符号常量名要用大写字母。即在标识 符中,大小写是有区别的。例如:A和a是两个不同的标识符。
数据类型 类型说明符 数值范围
整型 int -32768~32767 -215~215-1 0~65535 -32768~32767 -215~215-1
字节
2 2 2 2 4
无符号整型 unsigned int 短整型 short
无符号短整 unsigned short 型 long 长整型 无符号长整 unsigned ong 型
2.2.4 字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program." , "$12.5" 等都是合法的字符串常 量。字符串常量和字符常量是不同的量。它们之间主要有以下 区别: ①字符常量由单引号括起来,字符串常量由双引号括起来。 ②字符常量只能是单个字符,字符串常量则可以含零个或多个 字符。
3、十进制整常数 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数:237,-568 ,65535 4、整型常数的后缀 在16位字长的机器上,基本整型的长度也为16位,因此表 示的数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。如果使用的数超过了 上述范围,就必须用长整型数来表示。长整型数是用后缀“L” 或“l”来表示的。例如: 十进制长整常数 158L (十进制为158) 358000L (十进制为358000) 八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536) 十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536
第2章 C语言,数据类型、运算符和表达式

(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言程序设计第2章-1数据类型、运算符和表达式

2、 C 语言的运算符的优先级与结合性
3、表达式:由操作数和运算符组成的序列。
5
精品文档
⒉ 真值: 带符号位的机器数对应的数值称为机器数的真值。 (10100011)2= -35
⒊ 无符号数:当计算机字长的所有二进位都用来表示(biǎoshì)数值时,称 为无符号数。
2.2.2 原码、反码和补码
⒈ 原码
整数 X 的原码指:其数符位 0 表示正,1 表示负,其数值部分
就是 X 的绝对值的二进制表示。
2.1 常用 的进位制 (chánɡ yònɡ)
2.1.1 二进制、八进制和十六进制(shíliùjìn zhì)数
3
精品文档
2.1.2十、二进制、八进制和十六进制数之间的换算
⒈ 二、八、十六进制数 → 十进制数的换算采用按权展开法。
(2AB.F)16 = 2χ162+10χ161+11χ160+15χ16-1 = 683.93 ⒉ 十进制数 → 二进制数的换算整数部分(bù fen)采用除以二取余直到商
19
精品文档
2.5.1 算术运算符与算术表达式
⒈ 基本的算术运算符:
14
精品文档
3.字符常量
字符常量是用单撇号括起来的单个字符或转义字符,
如: ‘a’, ‘9’, ‘&’, ‘\n’, ‘\’’, ‘\101’。
字符常量的值为该字符的ASCII码值,如 ‘a’值为97, ‘\n’
第2章 数据类型、运算符与表达式

注意事项:
八进制的数码范围为0--7; 则:018、091、0A2 都是错误的数据表示方法。
十六进制的数码除了数字0-9外, 还使用英文字母a-f (或A-F)表示10-15。 如:0x1e、0Xabcdef、0x1000 但:0X2defg、0x100L都是错误的。
第二章 2.2 常量和变量
二、定义方法
整型变量分别以下列方式定义 1. 基本整型 int a, b, c;
2. 短整型 3. 长整型 short int 或 short a, b, c; long int 或 long a, b, c;
4. 无符号型 unsigned a, b, c;
unsigned short a, b, c; unsigned long a, b, c;
4. 一个非负整数<32768 则可赋给 unsigned int。
5. 一个常数后加 'l',或'L',表示长整数. 如123l. 主要
用于函数调用时形、实参数传递。
练习:请补充完整下列程序,使之符合给定的运行结果
Main( ) {int a,b, sep,tim; a=7;b=2; tim=a*b; sep=a/b; printf(“ ”); printf(“ ”); }
c1=97;
c2=98;
printf ("%c %c", c1, c2)
} 运行结果 a b
例2: main ( ) { char c1, c2; c1= ' a ';
c2=' b ';
c1=c1– 32; c2=c2– 32;
printf ("%c %c", c1, c2)
C++程序设计第2章数据类型、运算符和表达式

11
2.2 C++的基本数据类型
不同计算机系统可能存在数据类型的长度不一样可用sizeof(数据类 型)测试某数据类型的字节长度。 cout<<“size of int is”<<sizeof(int)<<endl; 在16位计算机结果:
在32位计算机上输出:
size of int is 2
size of int is 4
3
2.1 保留字和标识符
2.1.1 保留字 C++中保留字(Reserved word)也称为关键字 (Keyword),它们是预先定义好的字符集合,对C++ 编译程序有着特殊的含义。表2-1给出了C++和Visual C++兼容的保留字。 保留字是语言系统的保留成分,编程者不能使用它们作为 自己的变量名或函数名等。
7
2.2 C++的基本数据类型
基本类型 整型 字符型 浮点型 布尔型 枚举类型 数组类型 结构体类型 共用体类型 类类型
数据类型
构造类型
指针类型 引用类型 空类型(void) 图2-1 C++的数据类型
8
2.2 C++的基本数据类型
C++语言的基本数据类型有如下四种: 整型,说明符为int; 字符型,说明符为char; 浮点型(实型),分为float(单精度浮点型),double(双精度 浮点型); 布尔型,说明符为bool。它的值是true和false。 教材中表2-2列出了Visual C++6.0中基本数据类型的情况。 注意:不同数据类型其值域不同,应住这些值域,在程序设计中, 要估计变量的值不应超过这些值域,否则将产生数值溢出现象,产 生编译器无法检测的错误。
C语言教程第2章数据类型、运算符与表达式

常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
c语音基本数据类型、运算符和表达式

本
指数形式:(e或E之前必须有数字;指数必须为整
数
数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5
据
类
实型常量的类型
型
默认double型
运 算
在实型常量后加字母f或F,认为它是float 型
符
及
表
达
式
15
C
2.4 实型数据
语
言
第 实型变量(在VC 6.0中)
2 章
达
55..55%%22 ()
式
24
C
语
自增、自减运算符++ --
言
作用:使变量值加1或减1
第 2 章
种类: 前置 ++i, --i (先执行i+1或i-1,再使用i值)
后置 i++,i-- (先使用i值,再执行i+1或i-1)
基
本
数
据
例 j=3; k=++j;
//k=4,j=4
类
j=3; k=j++;
…...
int a=1, b=-3,c; 例:
int a=2,b,c=4;
型 运 算 符 及 表 达
例例12isnftlctao=daaset%tnm{uatbd=,ab;e1im{,innfa9cnl=t(;;ao/;t)/1iIainafl;altnle/=(o/,t)gUb1daa=;anatlt2,dbade;u;=afsit2nea;e;odf
2字节
式
…...
分p配ri指npt定fr(i字“nd节tfa(的t“a内d=a%存ta单f=\n元%”,fd\na”ta,d);ata);
c++第二章

int a, b;
float x,y ;
(定义变量a和b为整型) (定义变量x和y为单精度实型)
• 变量的赋值和初始化
变量必须先有确定的值后才能参与各种相应的操作,变
量获取值的方法有三种:输入、赋值、初始化 • 赋值语句 例如: int a; a = 3;
// 使整型变量a的值为3
又如: int a, b, c; a = b = c = 0;//允许在一条赋值语句中为多个变量同时赋值 • 初始化:在定义变量的同时对变量赋初值。 例如: int a=3; 或 int a(3); // 使整型变量a的值为3
在c++中,int型占4个字节。
八进制形式 以数字0开头,由0~7之间的数字组成的数 据,如: 056。
十六进制数
以0x或0X开头,由数字0~9和字母A、B、C、 D、 E、F组成的数据。如: 0X5A、0x39、0x5b。
• 实型常量
实型常量有两种表示方式:
1)十进制小数形式 由正负号、数字和小数点组成,其中小数点不能缺 少,正数符号可省略。如1.25、-1.25、17.和.1。 2)指数形式 由尾数开头,加上指数部分共同构成,其中指数部 分由指数符号e(或E),正负号及整数组成。如1.25e-5、 +1e10、-1.25e5、1e-6、3e2。 注意:e前面不能没有数字,e后面的数字必须为整数,也 不能加园括号。如1E(-3)、E-5、1e2.1都是错误的。
在逻辑运算中,逻辑运算符两端的操作数如为“非0”, 就当作“真”来处理,如果是“0”,便当作“假”来 处理。 例如: 5>3 && a<b的结果为1 !12+3<6的结果为1。
说明:
C++第2章 数据类型与表达式

signed long int
unsigned long int float double long double
singned long
unsigned long —— —— ——
有符号长整型(同long int)
无符号长整型 浮点型 双精度型 长双精度型
4
4 4 8 10
-2,147,483,648~2,147,483,647
128u // unsigned 1024UL // unsigned long
1L
// long
8Lu
// unsigned long
14
2.2.1 整型字面值常量
2.前缀类型标识
在C++中整型有三种表示形式:10进制、8进制和16进制,以非 0开头的数是10进制,以0开头表示8进制,以0x或0X开头表示 16进制,例如:
H e A \0 AΒιβλιοθήκη llo \0
图2-2 字符串与字符的存储方式
23
2.2.6 枚举
C++程序设计 第2章 数据类型、运算符和表达式
第2章 数据类型、运算符和表达式
2.1 2.2 2.3 2.4 2.5 2.6 2.7 基本数据类型 常量 变量 基本运算符 类型转换 表达式和语句 本章小结
2
2.1 基本数据类型
为什么要区分数据类型?
C++通过数据类型,告诉计算机数据是如何定义的。
10
2.1.5 C++的数据类型
C++数据类型如图2-1所示。
基本数据类型 整数类型(int) 单精度型(float) 浮点类型 双精度型(double) 字符类型(char) 布尔类型(bool) 空值类型(void) 枚举类型 数组类型 C++数据类型 构造数据类型 结构与联合类型 指针类型 引用类型
C语言知识点:第2章 数据类型、运算符与表达式

主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
第2章 数据类型、运算符、表达式

第二章 数据类型、运算符、表达式一、数据类型C 语言中的数据类型比别的语言丰富。
基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。
1、常量与符号常量常量:在程序执行过程中,其值不发生改变的量称为常量。
常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a ’,‘b ’,‘c ’则为字符常量。
常量即为常数,一般从其字面即可判别。
符号常量:有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。
如:#define PI 3.142、变量变量:程序执行过程中其值可以改变的量。
定义方法定义形式:数据类型 变量名1,变量名2,……变量名n ;整型(int )数据类型 基本类型 整型 单精度型(float )字符型(char )长整型(long )短整型(short )实型 双精度型(double )枚举类型(enum )共用体类型(union )构造类型结构体类型(struct )数组类型空类型(void )指针类型(*)如:char ch1, ch2; /* ch1,ch2为变量*/float x, y; /* x ,y 为实型变量*/int a, b, c; /* a,b,c 为整型变量*/在书写变量说明时,应注意以下几点:(1) 允许在一个类型说明符后,说明多个相同类型的变量。
各变量名之间用逗号间隔。
类型说明符与变量名之间至少用一个空格间隔。
(2) 最后一个变量名之后必须以“;”号结尾。
(3) 变量说明必须放在变量使用之前。
一般放在函数体的开头部分。
另外,也可在说明变量为整型的同时,给出变量的初值。
其格式为:类型说明符 变量名标识符1=初值1,变量名标识符2=初值2,...;3、数据在内存中的表示整型数据:以二进制的形式表示(1) int 类型正数: 如 123 (+123)用 16 位二进制(二个字节)表示原码 反码(原码同) 补码(原码同)最大正整数 215-1=214+213+212+211+210+29+2827+26+25+24+23+22+21+20=32767负数:如 –123原码补码(补码加 1)1取反加1 最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215 而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16最大数215+214+213+2122+21+20=65535最小数 0 (3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short 用16 位二进制(二个字节)表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC++的数据类型 2.1 VC++的数据类型
2.1.5 2.1.5 基本数据类型 描述2方面信息:数据占用空间的大小; 描述2方面信息:数据占用空间的大小;数据允许执行的 操作或运算 可分为2大类:基本数据类型和导出数据类型。 可分为2大类:基本数据类型和导出数据类型。 1、基本数据类型:C++中预定义的数据类型 基本数据类型:C++中预定义的数据类型 :C++ (见表2-3\4) 见表2 2、导出数据类型:用户自定义的数据类型 导出数据类型:
Visual C++ 面向对象与可视化程序设计
2.1.7 变量
变量赋初值 在变量说明时, 1、在变量说明时,直接赋初值 如:int a=3,b=4; float c=2.5; 2、使用赋值语句赋初值 如:int d,e; d=5; e=9;
Visual C++ 面向对象与可视化程序设计
第二部分 基本运算符
位运算符
一元运算符 按位取反:对操作数的每一个二进制位进行“取反操作” ~ 按位取反:对操作数的每一个二进制位进行“取反操作” 二元运算符 a<<b表示将 的二进制位依次向左移动b 表示将a << 左移 a<<b表示将a的二进制位依次向左移动b个二进位 a<<b表示将 的二进制位依次向右移动b 表示将a >> 右移 a<<b表示将a的二进制位依次向右移动b个二进位 对应位均为1 该位的运算结果为1 否则为0 & 按位与 对应位均为1时,该位的运算结果为1,否则为0 对应位均为0 该位的运算结果为0 否则为1 | 按位或 对应位均为0时,该位的运算结果为0,否则为1 对应位不同时,该位的运算结果为1 否则为0 ^ 按位异或 对应位不同时,该位的运算结果为1,否则为0
Visual C++ 面向对象与可视化程序设计
关系运算符
均属于二元运算符 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于 运算结果为一整数,当关系成立时,结果为1 运算结果为一整数,当关系成立时,结果为1;关系不 成立时,结果为0 成立时,结果为0。
真值1,假值0
Visual C++ 面向对象与可视化程序设计
优先级 1 2 3 4 5 6 7 8 9 10 11 12 13
运算符 ()、.、->、[、]、::、.*、&(引用) *(递引用)、&(取地址)、new、delete、!、~、++、 --、-(负号)、sizeof() *(乘)、/、% +、<<、>> <、<=、>、>= ==、!= &(位运算符) ^(位运算符) | && || ?:(三目运算符) =、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|= ,(逗号运算符)
算术表达式
由算术运算符、括号和操作数构成的,能求出一个整数或 实数值的式子,称为算术表达式 【例】a+b*c a*-b 等价于a*(-b)
Visual C++ 面向对象与可视化程序设计
关系表达式
用关系运算符将操作数连接起来的式子称为关系表达式。 【例】a+b<d+e 等价于(a+b)<(d+e) a>b>c 等价于(a>b)>c
赋值表达式
在C++中,“=”是一个赋值运算符,作用是将一个数值 或将一个表达式的值赋给一个变量 【例】a=5+6 b=c=d=a+5 a=5+c=5 错误 a=5+(c=5)
Visual C++ 面向对象与可视化程序设计
赋值表达式
复合赋值表达式 += (加等) -= (减等) *= (乘等) /= (除等) %= (求余等) <<= (左移等) >>= (右移等) &= (与等) ^= (异或等) |= (或等) a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b 等同于 等同于 等同于 等同于 等同于 等同于 等同于 等同于 等同于 等同于 a=a+b a=a-b a=a*b a=a/b a=a%b a=a<<b a=a>>b a=a&b a=a^b a=a|b
数据类型、运算符和 表达式
谷慧娟 hjgu@
第一部分 数据类型
Visual C++ 面向对象与可视化程序设计
VC++的数据类型 2.1 VC++的数据类型
2.1.1 关键字 关键字(保留字):在C++语言中有特殊含义和用途的 关键字(保留字):在C++语言中有特殊含义和用途的 ): 英文单词。 英文单词。 2.1.2 标识符 标识符:可用作变量名、函数名、自定义的数据类型 标识符:可用作变量名、函数名、 名等。 名等。 标识符命名规则:可由字母、数字和下划线组成, 标识符命名规则:可由字母、数字和下划线组成,但必须 以一个字母或下划线开始;保留字不能作为标识符。 以一个字母或下划线开始;保留字不能作为标识符。 Visual C++ 面向对象与可视化程序设计
Visual C++ 面向对象与可视化程序设计
逗号表达式
用逗号运算符连接起来的表达式称成为逗号表达式 形式: <表达式1>, <表达式2>,… ,<表达式n> 计算方式:按从左到右的顺序依次求出各表达式的值,并 把最后一个表达式的值作为整个逗号表达式的值 注意:逗号运算符的运算优先级别是最低的 并非所有逗号都构成逗号表达式,如max(a+b,c+d) [例]设b=2,c=3,d=4,求逗号表达式的值 a=5+5,b=b*b+c,d=d*a+b
Visual C++ 面向对象与可视化程序设计
浮点型
浮点型(实型)常量表示法: 浮点型(实型)常量表示法: 十进制计数法 3.1415f 0.12 0.0 .25 -78. 科学计数法 1.0e0.23E3e1 1.0e-3 0.23E-2 56e9 注意:以科学计数法表示浮点型常量时, 注意:以科学计数法表示浮点型常量时,E或e的前面 必须有数字,且在E 之后的指数部分必须是整数。 必须有数字,且在E或e之后的指数部分必须是整数。
VC++的数据类型 2.1 VC++的数据类型
2.1.3 标点符号 共9个: #、(、)、{、}、,、:、;、… 2.1.4 分隔符
包括:运算符、空格、标点符号、回车、Tab键 包括:运算符、空格、标点符号、回车、Tab键 、Tab 注解作为空格处理,所以注解可作分隔符 注解作为空格处理,
Visual C++ 面向对象与可视化程序设计
结合性 右结合 左结合 右结合 右结合 右结合 右结合 右结合 右结合 右结合 右结合 右结合 右结合 左结合 左结合 右结合
低
14 15
表达式
由运算符、括号和操作数构成的,能 求出一个值的式子称为表达式
算术表达式 关系表达式 逻辑表达式 赋值表达式 逗号表达式
Visual C++ 面向对象与可视化程序设计
Visual C++ 面向对象与可视化程序设计
2.1.6 常量
标识符常量 1、使用编译预处理指令 如:#define PI 3.1415926
2、使用常量 说明符 如: const float pi=3.1415926;
Visual C++ 面向对象与可视化程序设计
2.1.7 变量
变量:值可变的量 变量说明在前,使用在后 说明格式 《存储类型》<类型> 变量名 1,…,变量名n; 如:int i; float j; char k;
Visual C++ 面向对象与可视化程序设计
逻辑运算符
#include<iostream.h> void main(void) { int i,j,k,n; i=3>7; j=5<7; k=i&&j; n=i||j; cout<<k<<'\t'<<n<<'\n'; }
Visual C++ 面向对象与可视化程序设计
Visual C++ 面向对象与可视化程序设计
术运算符
/ 除法运算符 对于除法运算符,若两边的操作数均为整型数时, 对于除法运算符,若两边的操作数均为整型数时,则作整 除运算,即只取运算结果的整数部分, 除运算,即只取运算结果的整数部分,去掉小数部分 结果为0 3/4 结果为0 结果为0.75 3.0/4 结果为0.75 求模(求余) % 求模(求余)运算符 对于求模运算符,其两边操作数必须是整型数, 对于求模运算符,其两边操作数必须是整型数,结果是两 数相除后的余数 结果为3 3%4 结果为3 结果为0 4%4 结果为0
Visual C++ 面向对象与可视化程序设计
2.1.6 常量
常量 常量是指用以表达有固定数值或字符值的单词符号, 常量是指用以表达有固定数值或字符值的单词符号, 在程序中不允许修改 分为字面常量和标识符常量
Visual C++ 面向对象与可视化程序设计
整型
整型常量: 整型常量:值不变的整数 十进制 16 八进制 020 注意:八进制以“ 为开头 注意:八进制以“0”为开头 十六进制 0x10 注意:十六进制以“OX”或者 0x”开头 或者“ 注意:十六进制以“OX 或者“0x 开头 长整型和无符号整型 L和U