数据类型与变量表达式
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"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本 数
数据在内存中是以二进制形式存放的。
据 类
如: int i;
/* 定义为整型变量 */
型 及
i=10; /* 给i赋以整数10 */
运 算
以两个字节为例
0000 0000 0000 1010
负数以补码的形式存放
如: int i; /* 定义为整型变量 */ i=-10; /* 给i赋以整数-10 */ 1111 1111 111 0110
型 字节(32位)。与整型数据的存储方式
及
运 不同,浮点型数据是按照指数形式存
算 储的。系统把一个浮点型数据分成小
数部分和指数部分,分别存放。指数 部分采用规范化的指数形式。
(3)浮点常量的类型
2021/3/1C语言程序设计
信息与工程学院
张建宏 13 13
第
二
章
基例2.3
浮点型数据的舍入运行误结差果:
类型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据)可;以
} 进行算术运算
2021/3/1C语言程序设计
及 运
短整型
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)
2021/3/1C语言程序设计
无符号短整型 unsigned short (int)
无符号长整型 unsigned long (int)
注意:括号表示其中的内容是可选的.
2021/3/1C语言程序设计
信息与工程学院
张建宏 2 2
第
二
章
基 • 整数类型的有关数据:
本
数 据
类型
类型说明符
长度 数的范围
类 型
基本型
int
2字节 -32768~32767
第
二
章
基 2.2.3 变量
本 数
• 变量代表内存中的一个存储单元,它用来存
据 类
放数据,这就是变量的值,在程序运行期间
型 及
,这些值是可以改变的。
运 算
• 变量名实际上是一个以一个名字对应代表一
个地址,在对程序编译连接时由编译系统给
每一个变量名分配对应的内存地址。从变量
中取值,实际上是通过变量名找到相应的内
类 double型)二类形式。
型
及
运
算
类型 位数
数的范围 有效数字
float
32
10-37 ~ 1038 6~7 位
double
64 10-307~10308 15~16位
2021/3/1C语言程序设计信Leabharlann 与工程学院张建宏 12 12
第 二 章
基
本 数
(2)浮点型数据在内存中的存放形式
据 类
一个浮点型数据一般在内存中占4个
信息与工程学院
张建宏 3 3
第
二
章 (2)整型变量的定义:
基
本 C规定在程序中所有用到的变量都必须在程
数 据
序中定义,即“强制类型定义”。
类 型
例如:
及
运 int a,b;(指定变量a、b为整型)
算
unsigned short c,d;(指定变量c、d为无符号短
整型)
long e,f;(指定变量e、f为长整型)
存地址,从该存储单元中读取数据。
2021/3/1C语言程序设计
信息与工程学院
张建宏 1 1
第
数值位
二
章 1、整型变量
基
本 (1)整型变量的分类
数
数值位
据
类
型
及 运
有符号基本整型(signed)int
算
有符号短整型 (signed)short (int )
共六种
有符号长整型 (signed) long (int) 无符号基本整型unsigned int
类 中正确的是( D)( 全国计算机等考试原题)
型
及 A、均占4个字节
运
算 B、根据数据的大小来决定所占内存的字节数
C、由用户自己定义
D、由C语言编译系统决定
2021/3/1C语言程序设计
信息与工程学院
张建宏 11 11
第
二 章
2、浮点型数据变量
基 本
(1)
浮点型变量的分类
数 据
浮点型变量分为单精度(float型)、双精度(
(3)整型常量的类型
2021/3/1C语言程序设计
信息与工程学院
张建宏 4 4
第
二
章 (2)_补 数制转换:
基
本 1)10进制2、8、16进制
数
据 方法:除基倒取余
类
型 及
2) 2、8、16进制 10进制
运 算
方法:按权展开相加求和
2021/3/1C语言程序设计
信息与工程学院
张建宏 5 5
第
二 章
32767或小于-32768的数。遇此情况就发生
“溢出”。
2021/3/1C语言程序设计
信息与工程学院
张建宏 10 10
第
二
章 例1、下列定义中,( D )定义的变量可以存放 –123.4。
基
本 A.long a B.unsigned bC.int d
D.float c
数
据 例2、以下关于long、int和short类型数据占用内存大小的叙述
2021/3/1C语言程序设计
信息与工程学院
张建宏 6 6
第 二 章
基
本 数
注意:
据 类
• 十进制数10的二进制形式为1010,Turbo C
型 及
2.0和Turbo C++ 3.0为一个整型变量在内存
运 中分配2个字节的存储单元(不同的编译系
算
统为整型数据分配的字节数是不相同的,
VC++ 6.0和C-Free3.5则分配4个字节)。
• 数值是以补码(complement) 表示的。
• 补码的求法:
2021/3/1C语言程序设计
信息与工程学院
张建宏 7 7
第 二 章
基 本
例如:整数13在内存中实际存放的情况:
数
据
类
型
及
运
算
2021/3/1C语言程序设计
信息与工程学院
张建宏 8 8
第
二
章
运行结果: a+u=22
基本数据例#in2c.l1ud整e型<s变tdi量o.h的> 定义与,使b用+u=-14
信息与工程学院
张建宏 9 9
第
二
章
运行结果: 32767,-32768
基 本
例2.2 整型数据的溢出
数 据
#include <stdio.h>
类 型
void main()
及 {int a,b;
运
算 a=32767;
}bp=rian+tf1(说;“%个 3明2d字7:6,%节8数~d为值\3n例2是7”),以6a7,一补范b)个码围; 整表内型示的变的数量。,只(无能以法容1表6纳位示-,大两于