第三章数据类型

合集下载

C语言第3章数据类型、运算符与表达式ppt课件

C语言第3章数据类型、运算符与表达式ppt课件
第三章
数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,

Labview 第三章 数据类型:数组、簇和波形

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 数据类型、运算符和表达式

三、整型数据
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 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:

第三章 数据类型、常量、变量及表达式

第三章  数据类型、常量、变量及表达式
11
例如,要将文本框 的前景颜色设置为红色, 例如,要将文本框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和小于 的整数表示该日期以 前的日期。 前的日期。

应用统计学(第三章 数据的描述性分析)

应用统计学(第三章 数据的描述性分析)

累积频率 Cumulative P
0.02 0.09 0.28 0.63
0.84 0.95 1.00
a.自然值进行分组,最大值17,最小值11 b.数据主要集中在14,向两侧分布逐渐减少
(3)计量数据
100例健康男子血清总胆固醇(mol/L)测定结果
4.77 3.37 6.14 3.95 3.56 4.23 4.31 4.71 5.69 4.12 4.56 4.37 5.39 6.30 5.21 7.22 5.54 3.93 5.21 6.51 5.18 5.77 4.79 5.12 5.20 5.10 4.70 4.74 3.50 4.69 4.38 4.89 6.25 5.32 4.50 4.63 3.61 4.44 4.43 4.25 4.03 5.85 4.09 3.35 4.08 4.49 5.30 4.97 3.18 3.97 5.16 5.10 5.85 4.79 5.34 4.24 4.32 4.77 6.36 6.38 4.88 5.55 3.04 4.55 3.35 4.87 4.17 5.85 5.16 5.09 4.52 4.38 4.31 4.58 5.72 6.55 4.76 4.61 4.17 4.03 4.47 3.40 3.91 2.70 4.60 4.09 5.96 5.48 4.40 4.55 5.38 3.89 4.60 4.47 3.64 4.34 5.18 6.14 3.24 4.90
15
21
0.21
0.84
16
11
0.11
0.95
17
5
0.05
1.00
表 2-2 100只梅花鸡每月产蛋数次数分布表
每月产蛋数
11 12 13 14 15 16 17

C语言第3章数据类型

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

c语言第3章 数据类型及表达式

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 标识符 常量值

03数据类型和表达式

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"。

第三章 数据类型运算符与表达式

第三章 数据类型运算符与表达式

三、变量
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

第三章 数据类型、运算符及表达式§31 字符及标识符

第三章 数据类型、运算符及表达式§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 .... *它们的含义后面将会络续提到。 * 用户定义的标识符,不能和关键字同名。

C语言教程第3章 数据类型、运算符与表达式

C语言教程第3章  数据类型、运算符与表达式
#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); } 运行结果为 a+u=22,b+u=-14
注意以下几点:
(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语言课件_第三章_数据类型

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章数据类型、运算符、表达式

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.赋值运算符和赋值表达式

C语言课件 第3章 数据类型

C语言课件 第3章 数据类型
基本数据类型:整型, 型,字符型
主要掌握各种类型的常量表示,变量的定义, 所占存储空间的大小,取值范围
一,整型: 整型: 整型 用于表示整数 所占内存空间:随机器而异,一般微机 上一个整型数据占 2B 的内存空间. 整型的可用修饰符: short [int] long [int] unsigned int / unsigned short /unsigned long
3.1 C的基本语法单位 的基本语法单位
1,字符集 character set 2,关键字 keyword 3,标识符 identifier 标识符命名规则: 标识符命名规则: (1)由字母,数字及下划线组成,且不能以字母开头. (2)不能与关键字同名 (3)尽量"见名知义" 例如:下列标识符,是否合法?为什么? area if score student_no 2day month_3 int _sum no*3 &aa
整型变量的定义(或说明): 如: int a, c, no; long s; unsigned x, y; 等 整型常量: decimal: 12 -3 0 octal : 024 056 hexadecimal: 0x3A -0X34 long int : 12L 0L 问题:要定义两个变量x 问题:要定义两个变量x 和y,分别用于存放数据 1024 和 65536,如何确定x和y类型? 65536,如何确定x
由例题分析可知: 由例题分析可知: 常量: 常量:在程序的运行过程中其值不能被改变 的量.如程序中的3 的量.如程序中的3, 4 符号常量: 符号常量:用一个标识符代表一个有特定含 义的常量. 义的常量.如 PI 变量: 变量:在程序的运行过程中其值可以被改变 的量. 的量.如 r , v 提示:变量必须先定义, 提示:变量必须先定义,后使用

C3-数据类型

C3-数据类型

3.5.3
字符型数据的存储方式及使用
字符数据在内存中存储的是字符的ASCII码 ─ 一 个无符号整数,其形式与整数的存储形式一样, 所以C语言允许字符型数据与整型数据之间通用。 (1)一个字符型数据,既可以字符形式输出,也 可以整数形式输出。(见50页例3.6) (2)允许对字符数据进行算术运算,此时就是对 它们的ASCII码值进行算术运算。 (见51页例3.7)
3. 长双精度: long double
3.4.3
实型常量的类型
–默认double型 –在实型常量后加字母f或F,认为它是float型
3.5
字符型数据
如 ‘a’ ‘A’ ‘?’ ‘\n’ ‘\101’
定义:用单引号括起来的单个普通字符或转义字符. 如 ‘A’——65 ‘a’——97 字符常量的值:该字符的ASCII码值 ‘0’——48 ‘\n’——10 转义字符:反斜线后面跟一个字符或一个代码值表示
2. 表达式和算术表达式
表达式的概念:用运算符和括号将运算对象(常量、变量和 函数等)连接起来的、符合C语言语法规则的式子,称为表 达式。
算术表达式:表达式中的运算符都是算术运算符。例如,3
+ 6 * 9、
(x + y) / 2 等,则称为算术表达式。
运算符的优先级与结合性:
(1)C语言规定了运算符的优先级和结合性。 所谓结合性是指,当一个操作数两侧的运算符具有相同的优先 级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结 合。 自左至右的结合方向,称为左结合性。反之,称为右结合性。 结合性是C语言的独有概念。除 单目 运算符、 赋值运算符和 条 件运算符是右结合性外,其它运算符都是左结合性。
C H I N A

第三章 数据类型及其运算

第三章 数据类型及其运算

第三章 数据类型及其运算知识点提示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 为前导的十六进制整数。

c语言教案第3章_数据类型

c语言教案第3章_数据类型

§3.2 常量与变量湖南城市学院品学兼修知行统一
10
C程序设计
§3.3 整型数据
3.3.1整型常量的表示方法 整型常量即整常数。在C语言中,整常数 可用以下三种形式表示:
(1)十进制整数。 如:123, -456.4。 (2)八进制整数。以0头的数是八进制数。 如:0123表示八进制数123,等于十进制数 83,-011表示八进制数-11,即十进制数-9。
5
C程序设计
§3.2 常量与变量
3.2.1 常量和符号常量
在程序运行过程中,其值不能被改变的量称为常量 常量区分为不同的类型:
整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 ‘a’, ‘b’,‘2’ 字符串 “a”, “ab”,“1232”
湖南城市学院
品学兼修
湖南城市学院
品学兼修
知行统一
11
C程序设计
§3.3 整型数据
(3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数-18。
3.3.2 整型变量 (1)整型数据在内存中的存放形式
数据在内存中是以二进制形式存放的。 如: int i; /* 定义为整型变量 */ i=10; /* 给i赋以整数10 */
湖南城市学院
品学兼修
知行统一
19
C程序设计
§3.3 整型数据
(3) 如果所用的C版本(如Turbo C)分配给 short int与int型数据在内存中占据的长度 相同,则它的表数范围与int型相同。因此 一个int型的常量同时也是一个short int型 常量,可以赋给int型或short int型变量。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例3-1 使用不同的数据类型 >> A=[1 2 3]; >> class(A) ans = double
• whos 使用工作空间的浏览
>> whos Name A ans
Size
1x3 1x6
Bytes Class
24 12 double array char array
>> B=int16(A); >> class(B) ans = int16
• 例3-5 创建逻辑类型数组 >> A=eye(3); >> B=logical(A) B= 1 0 0 0 1 0 0 0 1 >> C=true(size(A)) C= 1 1 1 1 1 1 1 1 1 >> D=false([size(A),2]) D(:,:,1) = 0 0 0 0 0 0 0 0 0
>> eps ans = 2.2204e-016 >> realmax ans = 1.7977e+308 >> realmin ans =
2.2251e-308
• 例3-3 NaN和Inf运算示例 >> a=inf; >> class(a) ans =double • MATLAB中所有的数据默认类型均为双精度类 >> b=int16(a) 型,包括像NaN和Inf在内的上述若干常数。 b =32767 • 对NaN和Inf进行数据转化时要注意, Inf将获取 >> c=sin(a) 相应数据类型的最大值,而NaN往往返回相应整 c = NaN 数数据类型的数值0,浮点数类型则仍然为NaN。 >> sin(c) ans =NaN • 在运算中使用NaN可以避免因执行了0/0这类能 >> class(c) 够产生错误的应用程序中断,这样可以辅助调试 应用程序。 ans = double >> int64(c) ans = 0
特殊变量表
特殊变量 ans pi eps flops inf NaN i,j nargin nargout realmin realmax 取 值 用于结果的缺省变量名 圆周率 计算机的最小数,当和 1 相加就产生一个比 1 大的数 浮点运算数 无穷大,如 1/0 不定量,如 0/0 i=j= 1 所用函数的输入变量数目 所用函数的输出变量数目 最小可用正实数 最大可用正实数
第三章 数据类型
主要内容
3.1 MATLAB基本数值类型 3.2 逻辑类型 3.3 字符串 3.4 元胞数组 3.5 结构
• MATLAB的早期版本只支持非常简单的二维数组和字符类型的 数据,目前MATLAB的基本数据类型已达十几种。 • 在MATLAB命令窗口中键入help datatypes命令便会得到如下 显示: double logical cell struct single uint8 - Convert to double precision. - Convert numeric values to logical. - Create cell array. - Create or convert to structure array. - Convert to single precision. - Convert to unsigned 8-bit integer.
向量B是从向量A通过数据类型转换得到的,可 以看出,A和B向量包含同样的数据,但是由于两 个向量的数据类型不同,所以它们占据的内存字 节数不同,双精度类型A占24个字节,而16位整 数类型的向量B仅占用了6个字节。
>> whos Name
A B ans
Size
Bytes Class 24 double array 6 int16 array 10 char array
• 数据位运算 在计算机中的任何数据都是由二进制数来保存的,所以计 算机中数据的二进制表达是进行二进制位运算的基础。
注:二进制数据是用0和1两个数码来表示的数。它的基数为2,进位 规则是“逢二进一”,借位规则是“借一当二”。由18世纪德国数理 哲学大师莱布尼兹发现的。
• 字节和位 字节(Byte)是计算机信息技术用于计量存储容量和传输容量 的一种计量单位。1个字节等于8位二进制其中,最右的一 位叫最低位,最左的一位叫最高位。所以16位整数占用两 个字节的内存,32位整数占用四个字节的内存。
括号运算符的优先级最高,数组 转置次之,幂运算先于乘除,乘除 优先于加减 。
关系运算符
在MATLAB里共有六种关系运算符,关系运算符是用来判断操作数两 者关系的运算。 < 小于 > 大于 <= 小于等于 >=大于等于 == 等于 ~=不等于 关系运算符将生成一个0-1矩阵,当运算数相应元素为真时,对应位置上 生成1,否则为0。
D(:,:,2) =
0 0 0 0 0 0 0 0 0 >> whos Name Size A 3x3 B 3x3 C 3x3 D 3x3x2
Bytes Class 72 double array 9 logical array 9 logical array
逻辑类型的数组每一个元素仅占用一个字节的内存空间,所以尽管矩阵B 和矩阵A看上去一致,但是内存占用上有相当大的差距,并且属于不同的数 据类型,也就有不同的操作函数和方法。
基本语句
MATLAB语言的基本语句结构为:
变量名列表=表达式
等号左边的变量名列表为MATLAB语句的返回值,若一次返回多个结果, 则变量列表用[ ]括起来,各变量间用逗号分隔; 等号右边为表达式,可以是矩阵运算或函数调用,可以由分号(;)、逗号(,) 或回车结束。
数据类型
在MATLAB里共有六种数据类型,每一种类型可以是一维、二维和多维的。 双精度型(double) 字符型(char) 稀疏型(sparse) 存储型(storage) 细胞型(cell) 结构型(struct)
• 3-7 函数all和any使用示例 >> a=[1 0 1;1 0 0;1 1 0;1 1 1] a= 1 0 1 1 0 0 1 1 0 1 1 1 >> all(a) ans = 1 0 0 >> any(a) ans = 1 1 1
运算符 算术运算符
+ * .* ^ 加 减 矩阵乘法 数组乘法 矩阵幂 .^ \ / ./ : 数组幂 左除或反斜杠 右除或斜杠 数组除 冒号
净,于是c=2i。
逻辑数据类型
定义:所谓逻辑数据类型就是仅具有两个数值的一种数据类 型,其中,一个数值为TRUE,另一个数值为FALSE。
• MATLAB将所有非零值看做逻辑真,将零值看做逻辑假。一般地,
MATLAB用1表示逻辑真,0表示逻辑假。 • 逻辑运算就是能够处理逻辑类型数据的运算。在MATLAB能够处理 的逻辑类型运算和C语言比较类似。 • 创建逻辑类型矩阵或者数组的函数主要有三个,如下表: 函数 logical true false 说明 将任意类型的数组转变成为逻辑类型数组,其中, 非零元素为真,零元素为假 产生逻辑真值数组 产生逻辑假值数组
int16 int32 int64 inline
- Convert to signed 16-bit integer. - Convert to signed 32-bit integer. - Convert to signed 64-bit integer. - Construct INLINE object. - Function handle array. - Invoke a Java method. - Invoke a Java object constructor.
1x3 1x3 1x5
• 例3-2 >> A=[1 2 3]; >> B=[4 5 6]; >> C=A+B;
>> whos
Name A B C Size 1x3 1x3 1x3 Bytes Class 24 double array 24 double array 24 double array
• >> D=int16(A)+int16(B)
• D=
• 5 7 9
可以看出,两个整数类型的矩阵加法得到的结果 同样是整数类型的变量,而双精度矩阵与整数矩阵 进行加法运算时,MATLAB报告相应的错误。
• >> whos • Name
Size
Bytes Class
• A 1x3 24 double array • B 1x3 24 double array • C 1x3 24 double array • D 1x3 6 int16 array • >> E=C+D • ??? Error using ==> plus • Integers can only be combined with integers of the same class, or scalar doubles.
例3-6 逻辑运算示例 >> a=eye(3); >> b=a;b=(3,1)=1; >> b=a;b(3,1)=1; >> a&b ans = 1 0 0 0 1 0 0 0 1 >> whos Name Size a 3x3 ans 3x3 b 3x3
Bytes Class 72 double array 9 logical array 72 double array
MATLAB中的常量
常量 ans eps realmax realmin pi i,j Inf NaN 说明 最近运算的结果 浮点数相对精度 MATLAB能够表示的实数的最大绝 对值 MATLAB能够表示的实数的最小绝 对值 常数π 复数的虚部数据最小单位 无穷大 非数
相关文档
最新文档