数据类型与变量表达式
c语言的数据类型、运算符和表达式
数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
3_数据类型、运算符和表达式
基本数据类型 ●字符型
字符常量是用单引号括起来的一个字符。例如’ 字符常量是用单引号括起来的一个字符。例如’a’,’b’,’=’,’+’,’?’都是合 都是合 字符常量。 语言中,字符常量有以下特点: 法 字符常量。在C语言中,字符常量有以下特点: 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 字符常量只能用单引号括起来, 字符常量只能用单引号括起来 不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 字符常量只能是单个字符, 字符常量只能是单个字符 不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参 字符可以是字符集中任意字符。 字符可以是字符集中任意字符 与数值运算。 是字符常量, 与数值运算。如’5’和5 是不同的。’5’是字符常量,不能参与运算。 和 是不同的。 是字符常量 不能参与运算。 转义字符是一种特殊的字符常量。转义字符以反斜线“ 开头 开头, 转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一 是一种特殊的字符常量 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义, 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称 转义”字符。 广义地讲, “转义”字符。 广义地讲,C语言字符集中的任何一个字符均可用转义字 符来表示。 正是为此而提出的。 符来表示。\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六 和 正是为此而提出的 和 分别为八进制和十六 进制的ASCII代码。如\101表示字母 A" ,\102表示字母 代码。 表示字母" 表示字母"B",\134表示反 进制的 代码 表示字母 表示字母 , 表示反 斜线, 表示换行等。 斜线,\XOA表示换行等。 表示换行等
5 数据类型和表达式
变量名举例
strArea Print1 Client_Name 1Base_Ball Base.1 _Base1 Base Base1 BASE Print Name Text Picture
变量名可以参照以下几点: 变量名可以参照以下几点:
尽量选择有意义的名字 可以将变量名各组成部分的开头字母大写, 或加下划线。 可在变量名的前面加一前缀来提示变量的 类型。53页表3 类型。53页表3-3。 strName intAge blnSex sngHeight
算术运算的一般形式 算术运算的一般形式为: 一般形式为 a Op b 或 OP b 其中Op表示运算符, 是左操作数, 是右操作数。 其中Op表示运算符,a是左操作数,b是右操作数。 表示运算符 例如: 例如:100 * 45 a和b也可以是一个表达式。 也可以是一个表达式。 例如: 例如:23 / 5 + 1.2 由数值型数据、算术运算符和圆括号 和圆括号构成的表 由数值型数据、算术运算符和圆括号构成的表 达式称为数值表达式。 算结果为数值型数据。 达式称为数值表达式。其运算结果为数值型数据。 例如: b+sqr(b^2 *a*c))/(2 例如:(-b+sqr(b^2-4*a*c))/(2*a) 特殊情况: 特殊情况 : 单个数值型常量或变量或函数也是 数值表达式。 数值表达式。 例如: 例如:0.5,Pi,a,sin(x)
(3)全局变量
全局变量的作用范围最大,对程序的所有 窗体和模块都有效。 声明时在模块窗口的通用/声明段,用Public 声明时在模块窗口的通用/声明段,用Public 或Global关键字。 Global关键字。
三、常量
顾名思义,常量的值在程序执行过程中保 持不变,不允许用户去改变它。 常量分文字常量和符号常量两种。 常数
3 数据类型、运算符和表达式
三、整型数据
3.1.整型常量 整型常量即整常数按不同的进制区分, 整型常量即整常数按不同的进制区分 , 整型常数 有三种表示方法: 有三种表示方法:
十进制数: 以非0 220, 560, 十进制数: 以非0开始的数 如:220, -560, 45900 八进制数: 06; 0106, 八进制数: 以0开始的数 如:06; 0106, 十六进制数: 十六进制数: 以0X或0x开始的数 如:0X0D, 0XFF, 0x4e
一般情况下,符号常量名用大写、变量用小写。 一般情况下,符号常量名用大写、变量用小写。
3、符号常量的声明和使用 一般放在程序的前端, <…>在一块: 一般放在程序的前端,与#include < >在一块: #define 符号常量名 值 如:#define Zero 0 好处: 好处: 含义清楚 (#define Second 60) (#define (#define 一改全改 (#define PI 3.14)
3. 整型变量的溢出
main(){ i,j; int i,j; unsigned k,l,m; k,l,m; i=32767 32767; i=32767; j=i+1 j=i+1; l=65535 65535u l=65535u; m=l+2 m=l+2; printf("j=%d\n",j); printf("j=% n",j); printf("l=% n",l); printf("l=%u\n",l); printf("m=% n",m); printf("m=%u\n",m); }
3.2、整型变量 整型变量的分类:加上不同的修饰符 1 . 整型变量的分类 : 加上不同的修饰 符 , 整型变 量有以下几种类型; 量有以下几种类型; C 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
第二章数据类型与表达式
返回本讲目录
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数据类型及表达式
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应有确定的 值*/
③ 长整型
数据类型、常量、变量及表达式
(3). 货币型(currency)
54
为表示钱币、处理财务问题设置。 占8个字节 小数点前 15 位,小数点后4位 取值范围:-922337203685477 ~
922337203685477.5807 浮点数的小数点是浮动的,可以放在任何位置,而货币型 的小数点是固定的,是定点型的。 变体数值类型是一种可变的数值类型,是一种智能型的类 型,可以表示任何值。包括数值、字符传、日期/时间等。
59
2. 字符串运算符与字符串表达式
字符串运算符有:& 、+ 。 功能是字符串连接
例如: "ABCD" + "EFGHI" ' 结果为:ABCDEFGHI “ VB ” & “程序设计教程” ' 结果为:VB程序设计教程 说明:当连接符两旁的操作量都为字符串时,上述两个连接符等 价。它们区别是: +(连接运算):两个操作数均应为字符串类型; &(连接运算):两个操作数既可为字符型也可为数值型,当 是数值型时,系统自动先将其转换为数字字符,然后进行连接 操作。
VB程序设计基础
VB是basic的发展,保留了原basic版本的 数据类型和语法。对于某些语句、函数功能 作了修改或扩展。在可视性要求上添加了一 些新的功能。 Basic 的基本元素:常量、变量、表达式、 函数。
§3.1 数据类型
一、基本数据类型
1) 字符串(string) 存放文本内容
关系运算的规则如下: (1)当两个操作式均为数值型,按数值大小比较。 (2)字符串比较,则按字符的ASCII码值从左到右一一比较,直 到出现不同的字符为止.。 例: " ABCDE " > " ABRA " 结果为 False (3)小写字符大于大写字符 例: " ab " > = " ZONE “ 结果为 True (4) 汉字字符大于西文字符。 (5)数值型与不能转换成数值型的字符型比较, 如:77>" sdcd" ,不能比较,系统出错。 (6)“Like”运算符是VB6.0新增加的(字符串匹配)。 61
03数据类型和表达式
GDI+ Windows的应用程
序的丰富用户
数据库
的各种对象
26
3.2.3 不同数据类型的转换
隐式转换: 运算结果的数据类型向精度高的数据类型靠 Integer<Long<Single<Double<Currency
优先级
算术运算符>=字符运算符>关系运算符>逻辑运算
显式转换: Ctype(表达式,转换到类型名) 例如:Ctype(123,string)
程序设计与实践 VISUAL
上海理工大学 信息基础教研室
第三章 语言基础
1 2 3 4 5
变量、常量与数据类型 运算符和表达式 常用函数 程序结构和编码规则 综合应用
2
3.1 数据类型、变量和常量
整数 数值型 浮点数 货币型 字节型 字符型 逻辑型 日期型 对象型 短整型 长整型 整型 单精度型 双精度型
18
1. 算术运算符
例
5+10 mod 10 \ 9 / 3意
对算术运算符两边的操作数应是数 值型,若是数字字符或逻辑型,则自 动转换成数值类型后再运算。
例
30-True 结果是31,逻辑量True转为数值-1, False转为数值0 False + 10 + “4” 结果是: 14
注 意
字符和字符串都必须是用西文的双引号引起 ""表示空字符串,而" "表示有一个空格的字符; 若 字 符 串 中 有 双 引 号 , 例 如 , 要 表 示 字 符 串 : 123"abc , 则 用 连 续 两 个 双 引 号 表 示 , 即 : "123""abc"。
实验报告实验2 数据类型与表达式
实验报告_实验 2 数据类型与表达式(学生学号__姓名)一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与一般常量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
回答下列问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。
可以。
(2)整数的占用长度与其数值大小有关吗?答:有。
(3)字符串中’\’’、’\n’、’\t’的功能各是什么?答:单引号,换行,水平制表。
(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?答:1个字节;4个字节;结束符‘\0’。
(5)整数的存储形式是什么?答:二进制补码。
2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。
回答下列问题:(1)字符数据在内存中是以什么方式存储的?答: ASCII码。
(2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?答:能,整数:”%d”,字符:”%c”。
(3)大小写字母的ASCII有什么关系?(如:’G’与’g’)答:ASCII码相差32。
(4)如何由’A’、’a’分别得到后续的大写字母、小写字母?答:’A+1’,’a+1.’(5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个字符吗?若能,如何得到?答:两个ASCII码绝对值相减,’a’-5,’a’+10.(6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?答:”C”字符串,’c’字符,能.3、(基础题)符号常量与常变量(即用const关键字定义)的使用:回答问题:(1)写出用符号常量定义PI的格式;#define PI 3.14(2)写出用“常变量”方式定义PI值的语句。
实验二数据类型、变量与表达式
C语言程序设计实验指导与习题解答三、注意事项及小结(1)通过本次实验,大家应该初步掌握 Visual C++ 6.0 集成开发环境的使用,包括集成 开发环境的进入、设置、退出,源程序的打开、编辑、保存、编译、运行等内容,能够读懂系 统提示的信息。
这样在今后的学习中,就可以把主要精力放到程序的调试上,提高上机效率。
(2)初学 C 语言程序,容易出错的地方是:①C 语言程序中的标点符号都需是英文输入法下的,如分号、逗号、引号等。
②语句后漏加分号。
如图 219 中编译出错,因为语句 printf("我们一起学习写 C 语言程 序!\n")的最后未加分号。
③使用标识符时,混淆了变量中字母的大小写。
如初学者可能会认为 abc 与 Abc 是同一 个变量,实际 C 编译系统会把它们看作两个不同的变量。
④程序语句中括号不匹配。
C 程序中的括号(如{}和()),引号(如""和''),都必须匹配, 即成对出现,如:例 211 中的源程序,若变为:#include <stdio.h>int main(){printf("我们一起学习写C语言程序!\n";return 0;}则会出现如下错误提示:G:\C例题\例211.c(4) : error C2143: syntax error : missing ')' before ';'即提示在语句“printf("我们一起学习写 C 语言程序!\n";”中分号';'之前少了括号')'。
实验二 数据类型、变量与表达式一、实验目的与要求1.理解数据类型的基本概念。
2.熟练掌握变量的使用方法。
3.熟练掌握运算符与表达式的使用方法。
二、实验内容1.写出下列程序的运行结果,并上机验证。
C语言--ch2--数据类型和表达式
2.3 运算符和表达式
3.算术表达式 1)用算术运算符和括号的式子,称为算术 表达式.例如: a*b/c-1.5+'a' 1+3-4*5-a*a+b*b 2)算术表达式的值: 任何表达式都有值 3*4-5/2*2%3 11
2.3 运算符
4, 注意: 1)C语言算术表达式的乘号(*)不能省略.例如: 数学式b2-4ac,相应的C表达式应该写成: b*b-4*a*c 2)C语言表达式中只能出现已经定义的标识符. 例如,数学πr2相应的C表达式应该写成: # define PI 3.14 int r; PI*r*r (或者 3.14*r*r) 3)C语言可以使用多层圆括号,此时左右括号必 须配对,运算时从内层括号开始,由内向外依 次计算表达式的值 .例如: (((3+4)*5)-9)*2-5
2.3 运算符和表达式
5,运算符的优先级与结合性 1)优先级见教科书 2)在表达式求值时,先按运算符的"优 先级别"高低次序执行 ,例如: a-b*c 等价于 a-(b*c), 3)结合性:左结合,即如果在一个运算 对象两侧的运算符的优先级别相同时,先 与左面的运算符结合,例如: a-b+c等价于(a-b)+c
2.2 常量和变量
4, 变量的作用:保存数据. 保存数据. 保存数据 例:求圆柱体的底面积,表面积,体积 5,变量在任意一个时刻都只能保存一个值. 例:int i; i=12;/*变量i的值这时为12*/ i=i+3;/*i=12+3, i的值这时为15*/ i=4;/* i的值这时为4*/
2.2 常量和变量
课堂练习:判断以下常量是否合法? 课堂练习:判断以下常量是否合法?
12e3; e3; 12.3e; 0.45E1.2
数据类型、变量、常量和表达式
例: "100" + 123 "100" + "123" " Abc" + 123 " 100" & 123 100 & 123 " Abc" & "123" " Abc" & 123
' ' ' ' ' ' '
结果为 结果为 出错 结果为 结果为 结果为 结果为
223 100123
Hale Waihona Puke 100123 100123 Abc123 Abc123
这就是隐式声明。所有隐式声明的变量都是Variant数据
类型。Visual Basic根据程序中赋予变量的值来自动调整 变量的类型。
例如:
下面是一个很简单的程序,其使用的变量 a, b, Sum 都 没有事先定义。 Private Sub Form_Click() Sum = 0 a = 10: b = 20 Sum = a + b Print "Sum="; Sum End Sub 3.强制显式声明——Option Explicit语句 良好的编程习惯都应该是“先声明变量,后使用变量”, 这样做可以提高程序的效率,同时也使程序易于调试。 Visual Basic 中可以强制显式声明,可以在窗体模块、标准 模块和类模块的通用声明段中加入语句:Option Explicit
运算符 < <= > >= 含义 小于 小于或等于 大于 大于或等于 优先级 所有关系运算 优先级相同。 低于算术运算 的加“+”,减 “-”运算,高 于逻辑非 “Not”运算。 实例 15+10<20 10<=20 10>20 "This">= "That" 结果 False True False True
实验2 数据类型与表达式
实验2 数据类型与表达式一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与常变量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容1、用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
运行下列程序,回答相关问题:#include<stdio.h>int main( ){printf ("int 型数据所占字节数: %d\n",sizeof(int));printf ("整数23、所占字节数分别为: %d、%d\n",sizeof(23),sizeof(4567890));printf ("char 型数据所占字节数: %d\n",sizeof(char));printf ("字符\'s\'所占字节数: %d\n",sizeof('a'));printf ("字符串\"s\"所占字节数: %d\n",sizeof("a"));printf ("字符串\"CCTV即中央电视台\" 所占字节数: %d\n\n",sizeof("CCTV即中央电视台"));int n1=13;printf ("%d\t%X\n",n1,n1);int n2=-13;printf ("%d\t%X\n",n2,n2);return 0;}(项目名称为lab_2_1,下同,不一一说明)问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?(2)整数的占用长度与其数值大小有关吗?(3)字符串中’\’’、’\”’、’\n’、’\t’的功能各是什么?(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?(5)整数的存储形式是什么?操作内容:请修改上述程序,使之能输出float、double、void类型所占用字节数。
基本数据类型与表达式
数据的存储格式
字符型数据:
使用一个字节,存放一个ASCII字符,示意图如下:
7
0
01 0 0 0 0 0 1
‘A’字符ASCII 为65
ASCII的范围:0 – 127 一个字符数据可以当作一个整数使用
5
#include <iostream> using namespace std; int main()
显示ASCII字符集的 程序
{
char ch;
for(int i=0;i<128;i++)
{
ch=char(i);
cout<<ch<<"\t"<<i<<"\t";
}
return 0;
}
6
7
整型数据的存储格式
短整型 short 15
87
0
短整数表示范围为:-215~215-1 (-32768~32767)
int i, j, k; // 说明了3个整型变量
long len; // 说明了1个长整型变量
float average, sum;
// 说明了两个浮点类型的变量
double distance, weight; // 说明了两个双精度类型的变量
•变量名命名规则与标识符相同。
13
二.变量的初始化
定义变量时赋初值:
实型数据分为:浮点型(float)和双精度型(double)
31
24 23
16 15
87
0
尾数部分
指数部分
一般浮点数的可以达到7位有效数字。例如1234.567。 双精度浮点数的有效位数可以达到15~16位。
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++数据类型 构造数据类型 结构与联合类型 指针类型 引用类型
第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 位二进制(二个字节)表示。
C语言程序设计实训教程第2章 数据类型、常量、变量、运算符与表达式
22
23
【例 2.8】 两个 char型数相加,结果为 char 型。( )[判断题,重庆市 2005年第 1次等级考 试] 答案:错 分析:结果是 int型。char型数据在运算前,先 无条件转换成 int型,再参与运算。
24
4)强制类型转换 【例 2.9】 若有 int k =5;float x=1.2;则表达 式( int)( x+ k)的值是( )。[单选题,重庆 市 2001年第 1次等级考试] A.5 B.6.2 C.7 D.6 答案:D
8
返回给定类型或表达式(运算结果)的字节数 (以 unsigned int的形式)。 强制转换运算符 把表达式的结果转变为所需的 类型。 (类型)表达式 运算过程中类型的转换 如图 2.1所示,横向表示无条件的转换,比如 在计算前,char型要先转换成 int再参与计算。 竖向表示操作符两边的操作数属于不同类型时, 精度低的向精度高的方向转换,然后再参与运算, 运算结果为转换后的类型。
9
赋值时类型转换 在赋值时,赋值号右边表达式 的值的类型自动转换为其左边变量的类型。 位运算符 位运算的操作数为整型或字符型。位 运算就是把整数的内部二进制形式按位进行运算。
图 2.1 C 语言类型转换示意图
10
①按位取反∽ 运算规则:
11
②位与(&) 运算规则:
12
③位或( |) 运算规则:
6ห้องสมุดไป่ตู้
运算符 分算术运算符、赋值运算符、关系运算 符、逻辑运算符、逗号运算符、自增和自减运算符、 条件运算符、位运算符等。 表达式 由运算符连接运算对象构成的式子。可 根据运算符的不同分类为算术表达式、赋值表达式、 关系表达式、逻辑表达式、逗号表达式、条件表达 式等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计
信息与工程学院
张建宏
4
第
二
章 (2)_补 数制转换:
基
本 1)10进制2、8、16进制
数
据 方法:除基倒取余
类
型 及
2) 2、8、16进制 10进制
运 算
方法:按权展开相加求和
C语言程序设计
信息与工程学院
张建宏
5
第
二
章 基
(4)整型数据在内存中的存放形式
本 数
数据在内存中是以二进制形式存放的。
本
数#include <stdio.h>
据类void main()
型及{float a,b;
运 算
a
=
123456.789e5;
b = a + 20 ;
printf(“%f\n”,b); 说}有明效:数一字个,浮后点面型的变数量字只是能无保意证义的的有,效并数不字准是确7位地
类型void main()
及 {int 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据)可;以
} 进行算术运算
C语言程序设计
信息与工程学院
类 double型)二类形式。
型
及
运
算
类型 位数
数的范围 有效数字
float
32
10-37 ~ 1038 6~7 位
double
64 10-307~10308 15~16位
C语言程序设计
信息与工程学院
张建宏
12
第 二 章
基
本 (2)浮点型数据在内存中的存放形式
数
据 类
一个浮点型数据一般在内存中占4个
C语言程序设计
信息与工程学院
张建宏
6
第 二 章
基
本 数
注意:
据 类
• 十进制数10的二进制形式为1010,
型 及
Turbo C 2.0和Turbo C++ 3.0为一个整
运 型变量在内存中分配2个字节的存储单元(
算
不同的编译系统为整型数据分配的字节数
是不相同的,VC++ 6.0和C-Free3.5则分
}
32768~32767范围内的数,无法表示大于
32767或小于-32768的数。遇此情况就发生
“溢出”。
C语言程序设计
信息与工程学院
张建宏
10
第
二
章 例1、下列定义中,( D )定义的变量可以存放 –123.4。
基
本 A.long a B.unsigned b
C.int d
D.float c
数
据 例2、以下关于long、int和short类型数据占用内存大小的叙述
型 字节(32位)。与整型数据的存储方式
及 运
不同,浮点型数据是按照指数形式存
算 储的。系统把一个浮点型数据分成小
数部分和指数部分,分别存放。指数
部分采用规范化的指数形式。
(3)浮点常量的类型
C语言程序设计
信息与工程学院
张建宏
13
第
二
章
运行结果: 123456.789e5
基例2.3 浮点型数据的舍入误差
无符号短整型 unsigned short (int)
无符号长整型 unsigned long (int)
注意:括号表示其中的内容是可选的.
C语言程序设计
信息与工程学院
张建宏
2
第
二
章
基 • 整数类型的有关数据:
本
数
据 类型
类型说明符
长度 数的范围
类 型
基本型
int
2字节 -32768~32767
及 运
短整型
short
2字节 -215~215-1
算 长整型
long
4字节 -231~231-1
无符号整型 unsigned
2字节 0~65535
无符号短整型 unsigned short 2字节 0~65535
无符号长整型 unsigned long 4字节 0~(232-1)
C语言程序设计
信息与工程学院
第
二
章
基 2.2.3 变量
本 数
• 变量代表内存中的一个存储单元,它用来存
据 类
放数据,这就是变量的值,在程序运行期间
型 及
,这些值是可以改变的。
运 算
• 变量名实际上是一个以一个名字对应代表一
个地址,在对程序编译连接时由编译系统给
每一个变量名分配对应的内存地址。从变量
中取值,实际上是通过变量名找到相应的内
张建宏
9
第
二
章
运行结果: 32767,-32768
基 本
例2.2 整型数据的溢出
数 据
#include
<stdio.h>
类 型
void
main()
及 {int a,b;
运
算 a=32767;
bp=rai+n1t说;f个明(“字:节数%d为值,例是%d)以\一补n”个码整,表a型示,b变的)量。; 只(能以容16纳位-,两
存地址,从该存储单元中读取数据。
C语言程序设计
信息与工程学院
张建宏
1
第
数值位
二
章 1、整型变量
基
本 (1)整型变量的分类
数
数值位
据
类
型
及 运
有符号基本整型(signed)int
算
有符号短整型 (signed)short (int )
共六种
有符号长整型 (signed) long (int) 无符号基本整型unsigned int
张建宏
3
第
二
章 (2)整型变量的定义:
基
本 C规定在程序中所有用到的变量都必须在程
数 据
序中定义,即“强制类型定义”。
类 型
例如:
及
运 int a,b;(指定变量a、b为整型)
算
unsigned short c,d;(指定变量c、d为
无符号短整型)
long e,f;(指定变量e、f为长整型)
(3)整型常量的类型
类 中正确的是( D )( 全国计算机等考试原题)
型
及 A、均占4个字节
运
算 B、根据数据的大小来决定所占内存的字节数
C、由用户自己定义
D、由C语言编译系统决定
C语言程序设计
信息与工程学院
张建宏
11
第
二
章 2、浮点型数据变量
基 本
(1)
浮点型变量的分类
数 据
浮点型变量分为单精度(float型)、双精度(
配4个字节)。
• 数值是以补码(complement) 表示的。
• 补码的求法:
C语言程序设计
信息与工程学院
张建宏
7
第 二 章
基 本
例如:整数13在内存中实际存放的情况:
数
据
类
型
及
运
ห้องสมุดไป่ตู้
算
C语言程序设计
信息与工程学院
张建宏
8
第
二
章
运行结果: a+u=22
基本数据例#in2c.1l整ude型<变st量di的o.定h>义与,使b用+u=-14
据 类
如: int i;
/* 定义为整型变量 */
型 及
i=10; /* 给i赋以整数10 */
运
算
以两个字节为例
0000 0000 0000 1010
负数以补码的形式存放
如: int i; /* 定义为整型变量 */ i=-10; /* 给i赋以整数-10 */ 1111 1111 111 0110