第三章数据类型
Labview 第三章 数据类型:数组、簇和波形
第三章数据类型:数组、簇和波形3.1概述数组是同类型元素的集合。
一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素。
可以通过数组索引访问其中的每个元素。
索引的范围是0到n –1,其中n是数组中元素的个数。
图3-1所显示的是由数值构成的一维数组。
注意第一个元素的索引号为0,第二个是1,依此类推。
数组的元素可以是数据、字符串等,但所有元素的数据类型必须一致。
图3-1数组示意图簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
它类似于C语言中的stuct。
使用簇可以把分布在流程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度。
减少子VI的连接端子的数量。
波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。
3.2数组的创建及自动索引3.2.1创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。
如果需要用一个数组作为程序的数据源,可以选择Functions»Array»Array Constant,将它放置在流程图中。
然后再在数组框中放置数值常量、布尔数还是字符串常量。
下图显示了在数组框放入字符串常量数组的例子。
左边是一个数组壳,中间的图上已经置入了字符串元素,右边的图反映了数组的第0个元素为:”ABC”,后两个元素均为空。
图3-1数组的创建在前面板中创建数组的方法是,从Controls模板中选择Array & Cluster,把数组放置在前面板中,然后选择一个对象(例如数值常量)插入到数组框中。
这样就创建了一个数值数组。
也可以直接在前面板中创建数组和相应的控制对象,然后将它们复制或者拖曳到流程图中,创建对应的常数。
还有很多在流程图中创建和初始化数组的方法,有些功能函数也可以生成数组。
3.2.2数组控制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建任何一种控制对象、常数对象和显示对象。
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 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
第3章 数据类型 yw
一个正数的补码就是其原码,例如整数7在八位
计算机中的补码是0000 0111。 对于负数的补码是将数字的反码加上1,就得到 了这个数字的补码。例如-7在8位计算机中的补码是 1111 1001。
关于数字在计算机中二进制表示的详细解释请参
阅相应的计算机原理方面的书籍。
14
例子3-3(a) 数据位“与”操作。
计的一种数组。利用空数组可以修改数组的大小,但是不能 修改数组的维数。 下面通过具体的例子来说明空数组创建和使用的过程。 例子3-6 创建空数组。
和创建普通的数组(矩阵)一样,创建空数组也有不同的
方法,在MATLAB命令行窗口中键入下面的命令:
22
>> A = [] A= [] >> B = ones(2,3,0) B= Empty array: 2-by-3-by-0 >> C = randn(2,3,4,0) C= Empty array: 2-by-3-by-4-by-0 >> whos Name Size Bytes Class A 0x0 0 double array B 2x3x0 0 double array C 4-D 0 double array Grand total is 0 elements using 0 bytes
第三章 数据类型、常量、变量及表达式
例如,要将文本框 的前景颜色设置为红色, 例如,要将文本框Text1的前景颜色设置为红色,可以 的前景颜色设置为红色 使用下面的语句: 使用下面的语句: Text1.ForeColor=vbRed 这里的vbRed就是系统常量。这比直接使用16进制数来 就是系统常量。这比直接使用 进制数来 这里的 就是系统常量 设置要直观得多。 设置要直观得多。 又如,窗口状态属性 可取0,1,2三个值,对应 三个值, 又如,窗口状态属性WindowsState可取 可取 三个值 三种不同状态。 三种不同状态。 在程序中使用语句 Myform.WindowsState=vbMaxmized, , 将窗口极大化,显然要比使用语句 将窗口极大化,显然要比使用语句Myform.WindowsState=2 易于阅读和理解。 易于阅读和理解。
9
5、日期常量 、
日期( 字节的浮点数来存储, 日期 ( Date) 型数据按 字节的浮点数来存储 , 表示日 ) 型数据按8字节的浮点数来存储 期范围从公元100年1月1日~9999年12月31日,而时间范围从 年 月 日 期范围从公元 年 月 日 0:00:00~23:59:59。 。 一种在字面上可被认作日期和时间的字符, 一种在字面上可被认作日期和时间的字符,只要用号码符 括起来, “#”括起来,都可以作为日期型数值常量。 括起来 都可以作为日期型数值常量。 例:#09/02/99#、#January 4,1989#,#2002-5-4 14:30:00 、 , PM#都是合法的日期型常量。 都是合法的日期型常量。 都是合法的日期型常量 说明:当以数值表示日期数据时,整数部分代表日期, 说明:当以数值表示日期数据时,整数部分代表日期, 而小数部分代表时间;例如 表示 表示1899年12月31日。大于 的 而小数部分代表时间;例如1表示 年 月 日 大于1的 整数表示该日期以后的日期, 和小于 和小于0的整数表示该日期以 整数表示该日期以后的日期,0和小于 的整数表示该日期以 前的日期。 前的日期。
C语言第3章数据类型
序 设 计
C
6
§3.1 C语言的基本元素和数据类型
字符型 char 程序=算法+数据结构 基本类型 整型 int 单精度 float 实型(浮点型) 算法处理的对象是数据 双精度 double 数据结构是数据的组织形式 数组型 array 数据类型是指数据的内在表现形式 数据类型 结构体型 (含位段)struct (代码,存储,运算)。 构造类型 共用体型 union 枚举型 enum 自定义型 typedef 指针类型 (pointer) 空类型 void
内容提要:
C语言的基本元素和数据类型 常量与变量
各种数据类型的常量和变量
变量赋初值 各种类型的数据间的混合运算 几种基本运算符及其表达式
3
程 序 设 计
C
§3.1 C语言的基本元素和数据类型
一、符号集(字符集) C语言经常使用的基本符号共有以下五种: (1)大写字母:A~Z (2)小写字母:a~z (3)阿拉伯数字:0~9 (4)下划线:_ (5)标点符号和运算符
程 序 设 计
C
19
§3.4 实型数据
三、实型数据的舍入误差
虽然实型数据的表示形式有两种但在内存中均是以指 数形式存放 数 阶 若数据超过有效位,则被 小数 指数 符 符 舍去,故可能产生误差。 例3-4 #include <stdio.h> Void main( ) { float a, b; a=123456.789e5; b=a+20; printf(“a=%f, b=%f\n”, a,b); } a=12345678848.000000, b=12345678848.000000
C语言程序设计
C Programming Language
数据类型及运算
内存中存储形式
负数的补码 =反码+1 =原码取反+1
内存中存储形式 10
A B
整型数据在内存中的存储形式
----以有符号 2 字节整型为例 32767(215-1)的 16位编码 原码:01111111 11111111 反码:01111111 11111111 补码:01111111 11111111 内存中存储形式 -32767(1-215)的 16位编码 原码:11111111 11111111 反码:10000000 00000000 补码:10000000 00000001 内存中存储形式
A B
空类型void 3
3.2~3.3(1) 常量与简单变量–以数值型为例
• 常量: 在程序运行中,其值不变的量,如: 23.7, - 67 等。 • 变量: 在程序运行过程中,其值可以改变的量, 在内存中占据一定的存储单元。
变量a 150 50
A B
4
一、两类常量
常数常量和符号常量 常数常量 如-10, 3.14 符号常量: 用标识符表示的常量。符号常量用 预处理(宏定义)命令定义在函数之外。 定义形式: A B
c语言第3章 数据类型及表达式
•除 当除号两边都是整型量时,叫做整除 整除, 当除号两边都是整型量时,叫做整除,运算结果只保 留整数部分。 留整数部分。 当除号任何一边有实型量时,运算结果是实数。 当除号任何一边有实型量时,运算结果是实数。 #include <stdio.h> main() main() { float div; div=1/2; printf( %f %f\ ,div); printf(“%f\n”,div); }
–规则: 规则: 规则
–见名知意 见名知意 –不宜混淆 不宜混淆
请指出下列标识符的正误: 请指出下列标识符的正误: main、count、!count、new、5abc、if、do、L_5、who、a123、 main、count、!count、new、5abc、if、do、L_5、who、a123、 _A、_123、c#、 _A、_123、c#、r-3、printf
h e l l o , w o r l d \0 • 注意: 注意: 字符常量和字符串常量是两个不同的概念 字符常量和字符串常量是两个不同的概念
char ch; ch=‘A ; ch= A’; char ch; ch=“A ;// ;//错误 ch= A”;//错误
A
\0
\0
3.7 字符型数据
3.7.3 字符型变量
3.3 常量
常量 • 定义:程序运行时值不能改变的量,即常数。 定义:程序运行时值不能改变的量,即常数。 • 分类: 分类: 符号常量: 符号常量:用标识符表示具体值 • 定义格式: 定义格式: • 一般用大写字母 直接常量: 直接常量:直接写出具体值 • 整型常量 • 实型常量 • 字符常量 • 字符串常量 常量值 #define 标识符 常量值
第三章 数据类型运算符与表达式
三、变量
3、变量值的存储 变量被定义以后,系统在运行时会为该变量分配一个相 应大小的存储空间,称为存储单元。 给变量赋值后,该变量对应的存储单元中会存放该值, 这个值称为变量的值。 那么变量的值在变量的存储单元中是如何表示的呢? (1)整数是以补码的形式存放的。 (正数的补码是其本身,负数的补码为原码按位取反加1) 如:int a=2, b; b= -2; a 00000000 00000010 b 11111111 11111110
(一)算术运算符和算术表达式
表达式的值: 表达式运算得到的最终结果为表达式的值。 也就是整个式子代表的值 如a=5,b=2; a+b 7
(二)赋值运算符和赋值表达式
赋值运算符:= 格式:变量=表达式 如:int a,b; 下面都是正确的赋值表达式 a=5; b=3; a=2+3; a=a+2; b=a*a; 赋值运算为“从右向左”结合的。 如x=y=z=3 它等价于:x=(y=(z=3))
第三章 数据类型运算符与表达式
信息管理系
3.0、C语言中标识符的概念
• 在程序中,由程序设计者使用的名字成为标 识符。标识符用以标志区分不同的东西。它 可以用作函数的名字、变量、常量的名字, 以及文件的名字等等。
一、C语言中的标识符分类
• 用户标识符 • 关键字(语句标识及类型标识)(P375附录II) 例如:real,main,char,int,float,double, long,if,for,switch,default,break等。 • 预定义标识符(函数名字等) 例如:define,include,printf,scanf,sin等。
2的原码表示:00000000 00000010 -2的补码表示:11111111 11111101+1=11111111 11111110
第三章 matlab数 据 类 型
Grand total is 45 elements using 108 bytes
第三章 数 据 类 型 使用logical函数、true函数和false函数的过程都比较简单, 通过最后的比较可以看出,逻辑类型的数组每一个元素仅占用 一个字节的内存空间,所以矩阵B尽管和矩阵A看上去一致,但 是内存占用上有相当大的差距,并且属于不同的数据类型,也 就有不同的操作函数和方法。 注意: 本书将MATLAB的logical array(逻辑数组)称为逻辑类型的 数组。在有些书籍上,将MATALB的这种数据类型直接叫做布 尔类型数组,请读者注意对比。
第三章 数 据 类 型 例子3-2 使用不同的数据类型。 例子 在MATLAB命令行窗口中,键入下面的指令: >> a = [ 1 2 3]; 由于MATLAB系统默认的运算都是 由于 系统默认的运算都是 针对双精度类型的数据或变量的, 针对双精度类型的数据或变量的, >> b = [ 3 4 5]; 所以在进行两个int16类型的变量加 所以在进行两个 类型的变量加 >> c = a+b; 法时, 报告了相应的错误。 法时,MATLAB报告了相应的错误。 报告了相应的错误 >> whos Name Size Bytes Class a 1x3 24 double array b 1x3 24 double array c 1x3 24 double array Grand total is 9 elements using 72 bytes >> int16(a)+int16(b) ??? Error using ==> + Function '+' is not defined for values of class 'int16'.
第三章 数据类型、运算符及表达式§31 字符及标识符
2关系运算符
比较两个操作数的大小的运算符,称为关系运算符。 关系运算的表达式,称为关系表达式。 例如, 3+5 > 7-4 关系表达式也有它的值。 如: 8 > 3, 该关系成立,因此关系表达式的值为真, 反之, 其值为假。 在C语言中,用数值1表示真,用数0表示假。 如,7 == 2,关系表达式为假,其值为0。 关系运算符的种类和表达式如下:
•
*C 语言提供的长整数的表示方法可以用来扩大整数的取值 范围. – 例如, 41l, 037l, 0x1fL 字母后面的l 或 L ,表示该数是长常数., 上面三个数,分别是十进制、八进制、十六进制长整数。 一个在整数中放不下的普通整数也被作为长整数,
因此, 把其后紧跟有 l 或 L 的整数叫显式长整数. • 在16位字长的机器上,长整数的位数是 32 位 ( 增长一倍 )。 故长十进制整数取值范围为 -2147483648 到 2147483647。 (2)整型变量: • 基本整型 int 如: int x; • 长整型 long 如: long int y; 或 long y ; • 无符号 unsugend 如: unsigend int z; 或 unsigend z。
• 关键字
具有固定意义的标识符,用户不能用作为自己的标识符, 它们共有32个,除符号常量外都用小写字母表示,就其用途 分五类。 (1) 数据类型 int char float double short ... (2) 存储类型 extern static register auto typedef (3) 控制语句 if else for while do .... (4) 运算符 sizeof (5) 符号常量 EOF BOF .... *它们的含义后面将会络续提到。 * 用户定义的标识符,不能和关键字同名。
计算机科学导论:第三章-数据存储
三数据存储3.1 数据类型如今,数据以不同的形式出现,如: 数字、文本、音频、图像和视频.人们需要能够处理许多不同的数据类型:•工程程序使用计算机的主要是目的是处理数字:进行算术运算、求解代数或三角方程、找出微分方程的根等。
•文字处理程序使用计算机的主要目的是处理文本: 调整对齐、移动、删除等。
•计算机同样也处理音频数据。
我们可以使用计算机播放音乐,并且可以把声音作为数据输入到计算机中。
•图像处理程序使用计算机的主要目的是处理图像:创建、收缩、放大、旋转等。
•最后,计算机不仅能用来播放电影,还能创建我们在电影中所看到的特技效果。
计算机行业中使用术语多媒体来定义包含数字、文本、图像、音频和视频的信息。
计算机内部的数据格式•位(bit): 是存储在计算中的最小单位,0或1,代表设备的某一种状态•位模式(位流): 表示数据的不同类型,长度为8的位模式称为一个字节(byte)属于不同数据类型的数据可以以同样的位模式存储于内存中•字: 通常用于代表更长的位模式3.2 存储数字整数是完整的数字(即没有小数部分)。
整数可以被当作小数点位置固定的数字: 小数点固定在最右边。
因此,定点表示法用于存储整数,在这种表示法中,小数点是假定的,但并不存储。
整数通常使用定点表示法存储在内存中。
3.2.1 无符号整数无符号整数是指非负整数。
它的范围在$[0,+\infy)$。
计算机通常会定义一个2n−1表示最大的整数;其中n表示用于存储整数的二进制位数。
无符号整数的存储过程1.输入无符号整数2.将输入的无符号整数转为二进制表示,•如果二进制位数不足n,则在其最左端用0补齐•如果二进制位数超过n,则其不能存储在计算机中,出现溢出现象。
无符号整数存储溢出现象因为大小(即存储单元的位的数量)的限制,可以表达的整数范围是有限的。
在n位储单元中,我们可以存储的无符号整数仅为0到2n−1之间。
如果发生溢出现象则计算机丢掉最左边的位,并保留最右边无符号整数的应用无符号整数表示法可以提高存储的效率,因为不必存储整数的符号。
第3章 数据类型——指针习题(有答案)
23.char *(*pfb)(const char *)=fb;
24.B
25.B
int(*pf1)(int);
pf1=f1;//或合并为:int(*pf1)(int)=f1;
char *(*pf2)(int,char *);
pf2=f2;//或合并为:char *(*pf2)(int,char*)=f2;
(2)函数指针的应用:
#include<iostream.h>
intadd(inta,intb){returna+b;}
20.已知变量a,b定义为:inta=99,&b=a;则cout<<a-1<<’,’<<b+1;的输出是()。
21.已知变量x,y定义为:intx[]={99,98,97},&y=x[1];则cout<<y-1<<’,’<<y*2;的输出是()。
22.已知函数fa的原形是:intfa(int,char*);,pfa是指向fa的指针,则pfa的定义是()
D.*(*(X+I)+j)
16.(单选)要使指针变量p指向2维数组A的第一个元素(0行0列元素),正确的赋值表达式是()。
A.p=A或p=A[0][0]
B.p=A[0]或p=A[0][0]
C.p=A[0]或p=&A[0][0]
D.p=A或p=&A[0][0]
17.下列程序功能是:将字符串中的小写字母都改成对应的大写字母,其他字母不变。请更改程序中的错误。
23.已知函数fb的原形是:char *fb(const char *);,pfb是指向fb的指针,则pfb的定义是()。
第三章 S7-300数据类型
输出 模块
PLC的扫描过程
输
输
I0.0 Q4.1 M10.0 Q4.2 I0.1 I0.1 Q4.1 M10.0 Q4.2
输
入 映 像 寄 存 器
出 映 像 寄 存 器
输 出 锁 存 器
输 出 端 子
信号
入 端 子
驱动
输入刷新 输入刷新阶段
程序执行
输出刷新 输出刷新阶段
扫描周期
返回本节
过程映象
PII
执行ob1中的程序循环执行事件日期时间中断硬件中断等调用其他obfbfc输出模块ai01ai02q80块ob1循环监视时间的开始启动块ob100上电后执行一次从模块读信号状态并保存到过程映象区pii把过程映象输出表piq写到输出模块cpu循环输入模块循环程序执行plc的扫描过程信号输入端子输入映像寄存器i00q41q41q42i01m100i01q42m100输出映像寄存器输出锁存器输出端子驱动输入刷新输出刷新程序执行扫描周期输入刷新阶段输出刷新阶段返回本节过程映象字节0字节1字节2
用字指针;对于其他存储器则要使用双字指针。
返回上级
4.存储器间接寻址(2/3)
【例3-1】 存储器间接寻址的单字格式的指针寻址。
返回上级
4.存储器间接寻址(3/3)
位序
位序
存储器间接寻址的双字指针的格式如图所示。
31 24 23 16 15
8 31
80ຫໍສະໝຸດ 70000 0000
0000 0000
24
23
【例3-2】 存储器间接寻址的双字格式的指针寻址。
返回上级
5.寄存器间接寻址(1/4)
寄存器间接寻址,简称寄存器寻址。该寻址方式在指令 中通过地址寄存器和偏移量间接获取操作数,其中的地址寄 存器及偏移量必须写在方括号“[]”内。在S7-300中有两个地 址寄存器AR1和AR2,用地址寄存器的内容加上偏移量形成地 址指针,并指向操作数所在的存储器单元。地址寄存器的地 址指针有两种格式,其长度均为双字,指针格式如图所示。
C语言教程第3章 数据类型、运算符与表达式
注意以下几点:
(4) 一个整常量后面加一个字母u,认为 是unsigned int型,如12345u,在内存 中按unsigned int规定的方式存放(存储 单元中最高位不作为符号位,而用来存 储数据,见图2.4(b)。如果写成-12345u, 则先将-12345转换成其补码53191,然 后按无符号数存储。
int a; unsigned int b;
一个整数(以13为例)在存储单元中 的存储情况
3. 整型变量的定义
int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e、f为长整型)
例3.2整型变量的定义与使用。
字符型变量用来存放字符常量,请注 意只能放一个字符,不要以为在一个字符 变量中可以放一个字符串(包括若干字符)。 字符变量的定义形式如下: char c1,c2;
c1='a';c2='b';
3.5.3 字符数据在内存中的存储 形式及其使用方法
字符的相应的ASCII代码放到存储单元中
例3.6向字符变量赋予整数。
单精度 ( float 型 占4B) 双精度 ( double 型 占8B )
C语言课件_第三章_数据类型
引言 1、计算机中的数据不单是简单的数字,所有计算机处理的信息,包括文字、 声音、图像等都是以一定的数据形式存储的。数据在内存中保存,存放的情况 由数据类型所决定。
2、数据类型即数据结构,决定了数据在内存中的存储形式。不同类型数据在 内存中所占存储空间的大小不同(同一类型数据在不同字长的计算机中所占存 储空间大小也不同),从而导致不同类型可存放数据的大小范围不同。但不论 何种数据类型,其在内存中都是以补码的形式存在的。 3、C语言提供的数据类型包括基本类型、构造类型、指针类型和空类型等,由 这些数据类型可构造出其它更复杂的数据结构(eg:表、栈、树等)。
C、存储:2个字节(Byte)即16位(bit),补码形式
第三章 数据类型
二、整型数据(描述的数据是整数的一个子集) 2、整型变量(分为基本整型、拓展整型) (1)基本整型 D、运算操作 a、算术运算 +(加法) -(减法) *(乘法) /(除法) %(求余)
运算规则:除了除法外,与数学中相同 eg:1+1=2 1-1=0 1*1=1 5%3=2
注意:由于字符在内存中是以二进制存放的,因此char和int可相互赋值,但必 须在一定范围内(0~255)。 (自学:P50 例3.6 向字符变量赋予整数、P51 例3.7 大小写字母的转换)
eg:char 型与 int 型互相赋值
#include <stdio.h> void main( )
{ int i; char c;
问题:用什么变量来存放字符串?
第三章 数据类型
五、变量与常量的定义 (符号常量和变量必须先定义,后使用) 1、常量(符号常量) 通过宏定义预处理命令来实现。 格式: #define 标识符 常量 例如: #define PRICE 30
C语言第3章数据类型、运算符、表达式
例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float
高
long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式
第三章 数据类型及其运算
第三章 数据类型及其运算知识点提示1.C 的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
2.C 的运算符种类、运算优选级和结合性。
3.不同类型数据间的转换与运算。
4.C 表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。
知识点一.C 的数据类型1.数据类型的概念数据类型在高级语言中的实质是为解决数据在程序中的表示(常量)、内存单元的分配(变量)及其加工的描述(算符和表达式)这三个基本问题。
在高级语言中,任何数据都是有类型的,即不同类型的数据有不同的存储属性及操作属性,将数据按其操作属性和存储属性进行分类,就是数据类型的概念。
2.C 的数据类型在C 语言中,数据类型分为基本类型、导出类型(构造类型)、空类型、指针类型。
基本类型有:整型、实型、字符型、枚举类型。
数据有常量与变量之分,它们分别属于这些类型。
3.常量在程序运行过程中,其值不发生变化的量,也就是在程序中直接给出的数据,在词法记号中属于文字。
常量分为字面常量(直接常量)和符号常量。
在C 语言中,符号常量是用无参数的宏定义实现的,即用标识符代表某一字面常量,其定义形式为:#define 标识符(宏名) 字面常量4.变量在程序运行过程中,其值可以改变的量。
变量实质在C 中是为解决不同类型数据在计算机中存储时内存单元的分配问题。
一个变量对应相应的内存单元,且变量有对应的变量名,变量名实际上是内存单元的符号地址。
将变量对应内存单元所存放的当前值,称为变量的值,对变量的访问是按地址进行的,即通过变量名找到相应内存单元的地址,对其存储单元进行读、写操作。
记住:变量的类型、变量名、变量的值是其三大基本属性。
5.整型数据·整型常量的表示方法十进制整数:如123,-456等。
八进制整数:以0为前导的八进制整数。
如0123、-03467,而0879非法。
十六进制数:以0x 为前导的十六进制整数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当程序运行时若先单击窗体再单击按钮,则显示结 果如上图所示
当程序运行时若先单击按钮再单击窗体,则显示结 果如上图所示
2、变量赋值
在声明一个变量后,要先给变量赋上一个合适的 值才能够使用。当然,对于不同数据类型的变量,系 统会赋予其默认初始值。给变量赋值的格式如下: 变量名 = 表达式
3.3 运算符和表达式
结果 8
-5 15 1.66666666666667 1 2 8 2
2.字符串运算符 运算符 + 含义 字符串运算 举例 “中西医”+”结合” “1000”+”234” 结果 “中西医结合” “1000234”
数学运算
1000+345
12+”56” “9870”+129
1345
68 9999
错误使用
图3-1
③窗体/模块级变量
指在一个窗体/模块的“通用”部分用Dim或 Private语句声明的变量,可以适用于该窗体/模块内 的所有过程,但对其它窗体/模块内的过程不能适用。 声明此类变量的格式如下: Dim/Private 变量名 [As 数据类型名] 或 Dim/Private 变量名[类型符]
字符(String)类型用于表示由多个字符组成的字符 串。字符可以包括所有的西文字符和汉字,字符两 侧用英文输入方式中的双引号括起。
4. 日期数据类型
日期(Date)型数据用于表示日期和时间,它可以接受多种表 示形式的日期和时间。表示的日期范围从公元100年1月1日 到9999年12月31日,时间范围为0:00:00~23:59:59。 赋值时用两个“#”符号把表示日期和时间的值括起来。 5.变体数据类型
(2)Single和Double型 Single型占4个字节,精度为7位,表示的正数范围为1.401298 E45~3.402823 E38,负数范围为-3.402823 E38~-1.401298 E-45。 Double型占8个字节,精度为16位,表示的正数范围为 4.94065645841247 E-324~ 1.79769313486232 E308,负数范围为-1.79769313486232E308~4.94065645841247 E-324。 Single和Double型用于保存带小数的 数字。
①普通局部变量:声明方式关键字为Dim 如以下变量的声明均是正确的: Dim a As Integer ‘声明了一个整型变量a Dim Inta% ‘声明了一个整型变量Inta Dim b# ‘声明了一个双精度型变量b Dim avg ‘声明了一个变体型变量avg Dim imax as Long,imin&,isum ‘分别声明了长整型变量imax和imin及变体型变量isum
标准 模块
声明方式 声明位置
在过程中 窗体/模块的 窗体/模块的 “通用”部 “通用”部分 分 否 不能 不能 否 能 不能 否 能
能,但在变 量名前要加 窗体名 能
再次调用过程, 是 变量是否初始化 能否被本模块的 不能 其它过程存取 能否被其它模块 不能 存取
数据类型名:可使用下表中的各数据类型的关键字;
变体(Variant)数据类型能够存储所有系统定义类型的数据, Dim objDb As Object 如果把它们赋予Variant类型,则不必在这些数据的类型间 Set objDb=OpenDatabase(" 进行转换,VB会自动根据上下文的需要完成任何必要的转 c:\Vb6\student.mdb ") 换。 6. 对象数据类型
对象(Object)类型可用来引用应用程序中或某些其他应用程 序中的对象。
3.2常量和变量
3.2.1 常量和变量的命名规则 在VB6.0中,必须按如下规则命名一个常量或变量: (1)不能使用VB中的关键字。 (2)首字符必须是字母或汉字,其余字符可以为字母、汉字、数 字或下划线,长度不超过255个字符。
例3-2 在下面程序中有一个按钮控件,其窗体Click事件 中声明了不同级但有相同名称的变量。 Public pub As Integer Private pri%
Private Sub Form_Click() Dim pub As Integer pub = 2 pri = 3 * pub Form1.pub = 4 * pub Print "dim pub = " pub, "pri=" ; pri, "public pub=" ; Form1.pub End Sub Private Sub Command1_Click() Print “pub=” & pub End Sub
例如下面列举的这些变量名是正确的:Inta、a、律师、师_9、y8。 而下面列举的这些变量名是不正确的: Sub ‘是VB中的关键字 255x ‘不允许以数字开头 _xy ‘不允许以下划线开头 x-y ‘不允许出现减号 a&b ‘不允许出现符号& xing ming ‘不允许出现空格
3.2.2 常量 1.直接常量 (1)字符串常量 字符串常量就是用双引号括起来的一串字符。 例如:”a”、”5”、””、”Hello2010”。 (2)数值常量 数值常量共有5种表示方式:整数、长整数、定点数、浮点 数和字节数。 例如: 整型常数:268、-7、0 长整型常数:268&、-7&、0& 八进制常数:&O567、&O132、&O0 十六进制常数: &H56CE、&HABEF、&H0 定点数: 3.1415、-100.85、0.0 浮点数:1.23E+10,-0.52E8、-1.23D+10,0.5D-24 字节数:86,100,0
4. 逻辑运算符
运算符 Not And 含义 取反 与 举例 Not True Not False True And True False And False True And False True Or True False Or True False Or False 结果 False True True False False True True False
& 字符串运算
2010+”上海博览会”
“VB” & ”程序设计” 253 & 69 12 & ”56”
出错
“VB程序设计” “25369” “1256”
2010 & ”上海博览会” “2010上海博览会”
3.关系运算符
运算符 含义 举例 结果
=
<> > >= < <= Like
等于
不等于 大于 大于等于 小于 小于等于
(3) 布尔常量 布尔常量只有True(真)和False(假)两个值。 (4) 日期常量 用两个“#”符号把表示日期和时间的值括起来表示日期常量。 例如:#11/28/2008# 2、系统内部定义常量 3、用户定义常量
3.2.3 变量
在VB中,用变量来表示程序运行过程中其值可发生变化的量。 变量名来表示其中存储的数据,变量类型表示其中存储的数据的具 体类型。因此每个变量必须有一个唯一的变量名字和相应的数据类 型。 1、声明变量 (1)隐式声明 在VB中使用一个变量时,可以不加任何声明而直接使用,叫 做隐式声明。 (2)显式声明 显式声明是指每个变量必须事先做声明,才能够正常使用。 声明变量语法格式如下: 声明方式 变量名 [As 数据类型名] 或 声明方式 变量名[类型符]
(3)Currency型 占8个字节,能表示数的范围为922337203685477.5808~922337203685477.5807。 (4)Byte型 用于表示并存储二进制数据。占1个字节,能表示0~255的整数范围。
2.逻辑数据类型
逻辑( Boolean)类型用于表示只有两种相反取值的 数 据 , 适 合 于 逻 辑 判 断 的 情 况 , 它 只 有 True 与 False两个值。 3.字符数据类型
②静态局部变量:声明方式关键字为 Static 例3-1 窗体中有按钮控件Command1,以 下是Command1的Click事件:
Private Sub Command1_Click() Dim a As Integer Static b As Integer a=a+1 b=b+1 Print "a=" ; a, "b=" ; b End Sub
逻辑运算符用于判 断操作数之间的逻 辑关系,结果是逻 辑值True或False。 左表列出了VB中 的逻辑运算符及其 运算法则,其运算 优先级别分别为由 高到低。
3x y (2 x z ) y 2
3.3.2 表达式
1.表达式的书写规则
VB表达式的书写规则与数学表达式的常用格式不同,要注 意区分。 (1)要正确使用VB中规定的相应运算符,且不能省略书 写任何运算符。如要表示x乘以y、x的3次方,应写成 x*y、x^3,而写成x×y或xy、x3均是不正确的。 (2)无论表达式结构多么复杂,都只能出现圆括号且要配 对,而不能使用其它类型的括号。
数据类型 关键字 整型 长整型 Integer Long 类型符 数据类型 % & ! # @ $ 字节型 逻辑型 日期型 变体型 对象型 关键字 Byte Date Variant Object 类型符 无 无 无 无
Boolean 无
单精度型 Single 双精度型 Double 货币型 字符型 Currency String
在VB中,变量可被声明为在不同范围内使用,根据范围和使用规则的 不同可 分为以下四种:普通局部变量、静态局部变量、窗体/模块级变 量和全局变量。如下表所示。
作用范围 普通局部变量 静态局部 窗体/模块级 全局变量 变量 变量 窗体 Dim 在过程中 Static Dim、 Private Public