算法描述概要.pptx
《算法描述摘要.pptx》由会员分享,可以在线阅读。有关《算法描述摘要.pptx(39页珍藏版)》的更多信息请在信息网搜索。
1. 1 算法描述 算法描述 算法描述语言的选择标准 算法描述语言的选择标准: 语言应具有描述数据结构和算法的基本功能;语言应具备描述数据结构和算法的基本功能;应尽可能简单,易于掌握和理解;语言应尽可能简单,易于掌握和理解;用这种语言描述的算法应该能够很容易地转换成用这种语言描述的任何算法。相对容易转换为任何编程语言。编程语言。 “类C”描述语言是C语言经过仔细筛选保留下来的核心子集,并进行了一些扩展和修改以方便描述。于是,核心子集,并且为了便于描述,进行了多次扩展和修改,从而增强了语言的描述功能。提高
2.完善语言的描述功能。 21. 预定义常量和类型 预定义常量和类型# TRUE 1# FALSE 0# OK 1# ERROR 0# 数据元素约定为数据元素约定为类型。用户需要根据具体情况确定具体类型。定义该数据类型。在这种情况下,您可以自己定义该数据类型。 32、算法采用如下函数形式描述: 算法采用如下函数形式描述: 函数类型 函数类型 函数名称(函数参数表) 函数名称(函数参数表)/算法描述 算法描述语句序列;语句顺序; / 函数名 为了简化函数的书写,提高算法描述的清晰性,我们规定,为了简化函数的书写,提高算法描述的清晰性,
3、为了明确描述,我们规定除了函数参数表中的参数需要指定数据类型外,函数中使用的局部变量不需要有变量描述。 ,必要时给出相应的意见即可。局部变量不需要有变量描述,需要时给出相应的注释即可。另外,在编写算法时,应该养成对关键句子段落添加注释的好习惯。另外,在编写算法时,应该养成对关键句子段落添加注释的好习惯。良好的习惯。为了方便算法的描述,除了值调用方式外,还增加了C+语言中引用调用的参数传递方式。在形式参数列表中,参数通过引用传递。形式参数列表中,&开头的参数为参考参数。是一个参考参数。 43.3。可用于算法描述
4、赋值语句形式有: 算法描述中可以使用的赋值语句形式有: 简单赋值 简单赋值 变量名 变量名=表达式;表达;系列赋值 系列赋值 变量名 变量名 1 = 1 = 变量名 变量名 2=.=2=.=变量名 变量名 n=n=表达式;表达;组赋值 组赋值(变量名(变量名1 1,.,变量名,变量名nn)=(表达式公式(表达式1 1,.,表,表达式表达式nn););结构体赋值 结构体赋值 结构体名 结构体名1 = 1 = 结构体名称 结构体名称 2 2; (value (value 1 , value, value 2 2,., value, value nn););条件表达式? 表达式 1 1: 表达式: 表达式 2 交换赋值 交换赋值 变量名 变量名 1 1 变量名 改变
5、数量名称2 2; 54、算法描述中可以使用的选择结构语句形式有: 算法描述中可以使用的选择结构语句形式有: 条件语句 条件语句 1 if (表达式) (表达式) 语句 ;语句;条件语句 条件语句 2 if (表达式) (表达式) 语句;陈述; else 语句;陈述; 语句 语句 1 (表达式) (表达式) case value value 1: 语句序列: 语句序列 1 ;break; case值2:语句序列:语句序列2; break;.case值n:语句序列:语句序列n; break;:语句序列:语句序列n+1; 6 语句 语句2 case条件 条件1:语句序列:语句序列1;休息;情况 条件 条件 2
6.:语句序列:语句序列2;休息; .case 条件n:语句序列:语句序列n; break;:语句序列:语句序列n+1; 75. 算法描述中可以使用的循环结构语句形式有: 算法描述中可以使用的循环结构语句形式有: for 循环语句 循环语句 for (表达式(表达式1;循环条件表达式;表达式;循环条件表达式; 表达式 2) 语句; while 循环语句 while (循环条件表达式) 语句 do 语句序列; (循环条件表达式) ; 86. 可用于描述算法的结束语句形式有:
7、结束语句的形式有:函数结束语句函数结束语句表达式;表达;; case 结束语句 结束语句 中断;异常结束语句 异常结束语句退出(异常代码); (异常代码); 7、算法描述中算法描述中可以使用的输入输出语句形式有:输入语句输入语句scanf(格式字符串格式字符串,变量名,变量名1,.,变量名,变量名n);输出语句 输出语句(格式字符串格式字符串、表达式、表达式1、.、表达式、表达式n);方括号()内的内容(方括号()内的内容可以省略) 方括号()内的内容可以省略。部分。 8. 算法描述中使用的注释格式为: 算法描述中使用的注释格式为: 单行注释 单行注释
8. /Text 序列 文本序列 99. 算法描述中可以使用的扩展函数有: 算法描述中可以使用的扩展函数有: 求最大值 求最大值 max (表达式 (表达式 1,.,表达式 , 表达式 n) 求最小值 求最小值 min (表达式 (表达式 1, ., 表达式, 表达式 n) 求绝对值 求绝对值 abs (表达式) (表达式) 求不足 整数值 求不足整数值floor (表达式) (表达式) 求进位整数值 求进位整数值 ceil (表达式) (表达式) 判断文件结尾 判断文件结尾 eof (文件变量) or (文件变量) or eof行尾判断 eoln (文件变量) or (文件变量) or .逻辑运算约定 逻辑运算约定 逻辑运算约定 & for for A&B, 当 A 的值为 0 时,不再
9. 当正确时,不再评估 B。评价。或运算 或运算 |对于A|B,当A的值为1时,不再为真时,不再评估B。评价。 10 编程语言简介 编程语言简介 1.数据类型、运算符和表达式 数据类型、运算符和表达式 2. 程序的三种基本结构 程序的三种基本结构 3. 数组 数组 4. 函数 函数 5. 指针 6. 结构体和联合 结构体和联合 11 一个简单的 一个简单的 C程序 程序 main()int max(x,y)int x,y;int a,b,sum;int z; a=123;b=456;if(xy)z=x;sum=a+b;else z=y;(“总和为%dn”,sum);(z);main()
10. int a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);(“max=%d”,c);12种数据类型和运算符和表达式数据类型、运算符和表达式 1. C 语言基本要素 语言基本要素 (1) 符号集(字符集) 符号集(字符集) C 语言使用的符号集 语言使用的符号集总数 5 种:大写字母AZ、小写字母、小写az、阿拉伯数字、阿拉伯数字09、下划线、下划线_、标点符号和运算符。 、标点符号和运算符。 (2)标识符)标识符是用来标记常量、变量、函数和文件名的字符序列。组成规则如下:用于标记常量、变量、函数和文件名的字符序列。组成规则如下:以字母(大小写)或下划线开头;以一句话开头
11、以字母(可大写或小写)或下划线开头;后面可以跟几个(后面可以跟几个(可以是0)字母、数字、下划线;)字母、数字、下划线;标识符的长度 每个系统都不同,最好不要超过标识符的长度。每个系统不同,最好不要超过8个;它区分大小写。区分大小写。 (3)关键字)关键字又称为“保留字”,是C语言中具有特定含义、专门用作语言的特定组成部分的字。一类标识符。类标识符。所有关键字都有固定含义,不用于其他目的。所有关键字都必须小写。所有关键字都有固定含义,不用于其他目的。所有关键字都必须小写。 132、C数据类型的数据类型是操作的对象,数据类型是指数据的内在表示形式(代码、存储、数据
12、数据是操作的对象,数据类型是指数据的内在表示(代码、存储、操作)。手术)。数据类型 数据类型 基本类型 基本类型 构造类型 构造类型 指针类型 指针类型 Null 类型 Null 类型 整数类型 int 实数类型(浮点类型) 实数类型(浮点类型) 字符类型 字符类型 char 数组 数组结构体 联合体 联合体枚举类型 枚举类型 单精度 单精度 float 双精度 双精度。常量和变量 常量和变量 (1) 常量和符号常量) 常量和符号常量 常量:其值在运算量期间不能改变。常量:在运行过程中其值不能改变的量。常量的类型可以通过其表示来区分。例如:常量的类型可以通过其表达式来区分。例如:12、3.2、符号常量:用标识符表示的常量。符号常量:使用标识符
13.用符号表示的常数。定义方法: 定义方法: # (2)变量)变量的值是一个可变的量。它由标识符(变量名)表示。它在内存中占有一定的量,并且其值是可变的。它由标识符(变量名)表示,占据内存中一定的存储单元。存储单元。定义方法: 定义方法: 类型符号 类型符号 标识符 标识符 注:见名即知含义;使用前先定义;符号常量名称习惯上使用大写字母,并注意变量名称:见名就知道含义;先定义再使用;习惯 上面为了区分,符号常量名都是大写,变量名都是小写。使用小写字母来区分。 154. 整数数据 整数数据 (1) 整数常量:十进制常量、八进制常量、十六进制常量。整数常量:十进制常量、八进制常量、十六进制常量。 (2)整型变量:基本整型变量
14. 数量:基本 int (2 字节)、short int (字节)、short int (2 字节)、long int (字节)、long int (4 字节) ) 5. Real 类型数据 Real 类型数据 (1) Real 类型常量:实数类型也称为浮点数,默认为实数类型常量:实数类型也称为浮点数,默认为类型,有十进制数形式和指数类型。有两种表示方法:十进制数形式和指数形式。有两种表达方式。 (2)实数类型变量:单精度类型(实数类型变量:单精度类型(float)占用4个字节),双精度(byte,双精度()占用)占用8个字节。字节。 6.字符数据 字符数据 (1)字符常量:用单引号括起来的字符;转义字符(特殊字符常量,字符常量:用单引号括起来的字符;转义字符(特殊字符常量,两者
15.一切都以“”开始)。开始)。 (2)字符变量:用于存储字符,只能存储一个字符。字符变量:用于存储字符,只能存储一个字符。 (3) 字符串常量:用一对双引号括起来的字符序列。一般来说,每个字符的字符串常量:用一对双引号括起来的字符序列。正常情况下,系统会自动在每个字符串常量的末尾添加一个字符“0”。系统自动在每个字符串常量的末尾添加一个字符“0”。 167. 为变量赋初值 为变量赋初值是在定义变量的同时设置初始值,也称为初始化。在定义变量的同时设置初始值也称为初始化。 8. 算术运算符和算术表达式 算术运算符和算术表达式 (1) C 运算符 算术运算符 算术运算符 +-*/% 关系运算符 关系运算符 =!= 逻辑运算符 逻辑运算符 !&|位运算符 按位运算
16. 运算符 |& 赋值运算符 赋值运算符 = 条件运算符 条件运算符?:逗号运算符 逗号运算符、指针运算符 指针运算符 *& 查找字节运算符 查找字节运算符 运算符组件 运算符。下标运算符 下标运算符 其他 其他 17 (2) 算术运算符和算术表达式 算术运算符和算术表达式 使用算术运算符和括号连接操作数(包括常量、变量、函数等) 连接操作数的表达式(包括常量、变量、函数)等)加上算术运算符和括号,并且符合C语言语法规则的称为符合语言语法规则的表达式,称为算术表达式。表达。运算符的优先级和结合性 运算符的优先级和结合性: 第一优先级:先*/%,然后+-。结合性:当操作数两边的运算符优先级相同时,表达式从
17、从左到右的计算称为结合性:当操作数两边的运算符优先级相同时,表达式从左到右计算,称为“左结合性”,从右到左的计算称为“结合性” “左结合性”。左计算称为“右结合性”。自动递增和自动递减运算符 自动递增和自动递减运算符 +i、-i 在使用 i 之前使用。 i 之后,再往后,i 的值加 1 或减 1。 注意:自增和自减运算符只能用于变量,不能用于常量或表达式。它的优先级很高。注意:自增和自减运算符只能用于变量,不能用于常量或表达式。其优先级高于算术运算符,组合方向为“从右到左,从右到左”。喜欢:。例如:-i+ 等价于-(i+)。 (-和+如下:如:i=3;j=+i
18.;/i=4 j=4 相同优先级,相同优先级) i=3;j=i+;/i=4 j=318 (3) 复合赋值运算符 复合赋值运算符位于 赋值运算符位于 赋值运算符 " =" 前面有其他运算符,形成复合赋值运算符。在其前面添加其他运算符以形成复合赋值运算符。 +=, -=, *=, /=, %=, =, &=, =, |= 例如: 例如:a+=3 相当于 a=a+3 x*=y+9 相当于相当于x=x*(y+9) 注: 注:各种运算符的优先级从高到低排列: 各种运算符的优先级从高到低排列: 初等运算符() 初等运算符号() -。一元运算符 一元运算符 算术运算符(先乘除,再加减) 算术运算符(先乘除,再加减) 关系运算符 关系运算符 逻辑运算符(不包含!) 逻辑运算符(不包含)
19. 郭! ) 条件运算符 条件运算符 赋值运算符 赋值运算符 逗号运算符 逗号运算符 19 程序的三种基本结构 程序的三种基本结构 1. 顺序编程 顺序编程 程序中语句的执行顺序就是语句的编写。命令。程序中语句的执行顺序就是它们的编写顺序。 2. 选择结构体的编程 选择结构体的编程 (1) if 语句的三种格式 语句的三种格式 条件执行 条件执行 if (e) 分支选择 分支选择 if (e) else Belse if 形式(梯形图) 公式形式(梯形图)语句) 语句) if(P1)S1;else if(P2)S2;else if(Pn)Sn;else Sn+1;20(2) 语句 ( 语句) 语句 ( 语句) 也称为多分支选择语言
20、处理多路分支问题时,程序语句程序比使用嵌套if语句(也称为多分支选择语句)更清晰、更容易阅读。更清晰、更容易阅读。 (表达式表达式)case常量表达式常量表达式1:语句语句1; case常量表达式常量表达式2:语句语句2; case常量表达式常量表达式n:语句语句n; :语句语句n+1;213。循环结构的编程设计 循环结构的编程设计 (1) while 语句用于实现“when 型、when 型”循环。其一般形式如下:循环。其一般形式如下: while(表达式表达式)语句 (2)语句用于实现“until类型until类型”循环。其一般形式为:循环。其一般形式
21、公式为: do 语句语句 while (表达式) (表达式) (3) for 语句语句 for (表达式 表达式 1; 表达式; 表达式 2; 表达式; 表达式 3) 语句语句 注:表达式 注:表达式 1 之前已求解进入循环(循环变量被赋予初始值);表达式在进入循环之前被求解(循环变量被赋予初始值);式2是本次循环能否进行的判断条件。 ;循环中执行完循环体中的语句后,需要判断循环是否可以继续进行;在循环中执行完循环体中的语句后,需要求解表达式来求解表达式3,即表达式,即表达式3是循环体的一部分。是循环的一部分。 22 数组 数组 1. 数组 数组 数组是相同类型的变量按顺序排列的集合。数组是相同类型变量的有序集合。使用符号名(数组名)来表示
22. 显示这组数字。使用符号名称(数组名称)来表示该数组。使用数组名称后跟下标来唯一标识数组中的元素。使用数组名称后跟下标来唯一标识数组中的元素。 2. 定义一维数组 定义一维数组 类型名 类型名 数组名 数组名 常量表达式 常量表达式定义提供名称、类型、维数和长度等信息来分配空间。定义提供有关名称、类型、尺寸和长度的信息以分配空间。数组名称的命名规则与简单变量名称的命名规则相同。数组名称的命名规则与简单变量名称的命名规则相同。数组名称后面只能跟方括号括起来的常量表达式(常量和符号常量)。数组名称后面只能跟方括号括起来的常量表达式(常量和符号常量)。常量表达式的值决定了数组元素的数量(数组大小)。常量表达式的值决定了数组元素的数量(数组大小)。使用连续内存
23. 该单元存储数组中的每个元素。使用连续的内存单元来存储数组中的每个元素。例如: 如:int a5;其内存存储量为: 其内存存储量为: 3 保存数组所需的内存量与数组元素的基本类型和数组大小有关。保存数组所需的内存量取决于数组元素的基本类型和数组的大小。总字节数 总字节数 = (基本类型) (基本类型) * 数组元素数 数组元素数如上例: 总字节数 如上例: 总字节数 = (整数)* 5 = 2 * 5 = 103。对一维数组的引用 对一维数组的引用数组必须先定义,然后再引用。数组必须先定义,然后引用。 C语言规定数组元素只能逐一引用,不能一次引用。语言规定数组元素只能逐一引用,但不能一次引用。
24. 使用整个数组。引用整个数组。引用一维数组的形式为:引用一维数组的形式为:数组名数组名下标下标,下标从0开始。 4.二维数组 二维数组 在C语言中,数组的元素可以是数组,从而形成二维数组。同样的语言,数组的元素可以是数组,从而形成二维数组。同理还可以组成三维数组、四维数组等。构成三维数组、四维数组等。 5、二维数组的定义和引用。二维数组的定义和参考。输入名称。输入名称。数组名称。数组名称。恒定的表达。恒定的表达。恒定的表达。恒定的表达。例如:例如:int a34;二维数组参考: 2.维度数组参考:数组名 数组名 下标 下标 下标 246. 字符数组 字符数组 在C语言中,没有专门的字符串变量,而是将字符串存储在字符数组中进行处理
25、语言中没有专门的字符串变量,而是将字符串存储在字符数组中进行处理。即用一维数组来存储字符串,每个元素存储一个字符。即用一维数组来存储字符串,每个元素存储一个字符。定义形式: 定义形式: char 数组名 数组名 常量表达式 常量表达式 常量表达式 常量表达式 为了确定实际的字符串长度,为了确定实际的字符串长度,C语言规定了一种指定“字符串结尾”的语言。 “flag end flag”为0。遇到0时,表示字符串结束。以字符串方式赋值时,必须保证数组元素的个数。等于前面的字符数 0)。
26. c6=“中国”;功能 功能 1. 概述 概述 AC 程序可以分为几个功能。一个程序可以分为几个函数。每个程序有且只能有一个主函数(每个程序有且只能有一个主函数(main),其他都是子函数。),其他都是子函数。子函数可以互相调用,但主函数不能调用。子函数可以互相调用,但主函数不能调用。 C程序的执行从主函数开始,调用其他函数后返回主函数。程序从该函数开始,调用其他函数后返回主函数。程序在main函数结束时结束。当函数结束时结束。所有子功能都是并行的,并且没有子功能属于任何其他功能。所有子功能都是并行的,并且没有子功能属于任何其他功能。从使用
27、从用户的角度来看,函数可以分为:标准函数(即库函数)和自定义函数。从用户的角度来看,函数可以分为:标准函数(即库函数)和自定义函数。从函数形式来看,可以分为:无参数函数和有参数函数。从函数形式来看,可以分为:无参数函数和有参数函数。 2. 函数定义的一般形式 函数定义的一般形式 类型描述 类型描述 函数名称(函数名称(形参描述 形参描述) 函数体 函数体 263. 函数参数和函数值 函数参数和函数值组成 组合 C在程序的各个函数之间进行函数调用时必须传递一些数据,这些信息的交换是通过参数传递和返回语句来完成的: 形式参数:定义定义函数时使用的参数。
28. 函数中使用的参数。实际参数: 实际参数:引用参考函数时使用的参数。函数中使用的参数。例如:int max(int x,int y)void main()int a,b,c;a=2;b=3;c=max(a,b);定义函数时,形参必须声明Type,只能是变量或者数组。定义函数时必须指定形参的类型,形参只能是变量或数组。在函数调用之前,形参不占用内存。函数调用完成后,形参占用的内存将是函数调用前形参占用的内存。函数调用结束后,形参占用的内存将被回收。被撤回。实际参数可以是常量、变量或表达式。实际参数可以是常量、变量或表达式。实际参数和形式参数必须是同一类型。实际参数和形式参数必须是同一类型。 C语言中实参到形式参数的数据传递是语言
29、实参与形参之间的数据传递是“按值传递”,即单向传递。它仅由参数组成,即单向传递。仅由参数对应的位置决定,与名称无关。无论名字如何,对应的位置都是确定的。 27 指针 指针 1. 变量地址 变量地址 在计算机中,数据存储在内存中。存储器可以分为若干个存储单元。在计算机的每个单元中,数据都存储在存储器中。内存可以分为若干个存储单元,每个单元可以存储一个字节(即一个字节(即一个8位的二进制数)。内存单元采用线性地址编码,每一位都是一个二进制数)。内存单元采用线性地址编码,每个单元都有唯一的地址码。单元具有唯一的地址代码。变量地址:系统为变量分配的内存单元的地址。变量地址:系统为变量分配的内存单元的地址。 2. 访问变量 直接访问变量
30.访问:直接访问:int a; a=3;间接访问:定义一个变量 间接访问:定义一个变量p,存放a的地址,传递地址,通过p访问a。问题:如何定义 问题:如何定义p?如何获取变量?如何获取变量a的地址?如何传递地址?如何通过p访问访问? 3. 指针变量 指针变量 指针变量是存储地址的变量。例如:假设指针变量是存储地址的变量。例如:设p为指针变量,将整型变量存储为指针变量,存储整型变量a的首地址,则称为指针变量地址,则称指针变量p指向a整型变量并指向整型变量a。 .4.指针变量的定义 指针变量的定义 类型名 类型名 * 指针变量名 指针变量名 指针变量的类型:存储在指针所指向的内存单元中
31. 要放置的数据类型。指针变量的类型:指针所指向的内存单元中存储的数据类型。例如:如:int*p1,*p2;字符*ps; 5、指针变量的赋值 指针变量的赋值 指针变量的值就是地址,它是一个无符号整数,但整型常量不能直接赋值给指针变量。其值为地址,是无符号整数,但整型常量不能直接赋值给指针变量。针变量。变量的地址可以分配给指针变量(查找地址运算符)。变量的地址可以分配给指针变量(查找地址运算符&)。注意,变量的类型必须与指针变量的类型一致。 。例如:它必须与指针变量的类型一致。例如:int a,b,*p; p =&a;您也可以使用相同类型的指针变量进行分配。例如:int a。 ,*P1,*
32。p2; p1 =&a; p2 = p1;如果未分配值,则指针变量的值是随机的。如果未分配值,则指针变量的值是随机的。分配null值分配为null的空值。喜欢:。例如:int*p; p = null;或p = 0; 296.6。两个相关运算符两个相关运算符和任何变量任何变量/获取地址运算符获取地址运算符 *指针变量指针变量/指针操作员指针运算符含义:含义:含义:a表示变量表示可变a占据的内存空间的第一个地址; *p表示指针变量指示由指针变量p指向的内存中的点。记忆中的数据。 *p =应用程序:通过指针变量访问尖变量。应用程序:通过指针变量访问指向变量。将指针变量指向要访问的变量。将指针变量指向要访问的变量。例如:例如:int a,
33。 *p,b; p =&a;访问指向变量。访问命名变量。获取内容获取内容:b =*p; (“%dn”, *p);商店内容存储的内容: *p = 100;注意:注意:如果 *p出现在“ =”的右侧或其他表达式中,则检索内容;在右侧或其他表达式中,检索内容;如果 *p出现在“ =”的左侧,则存储内容。左侧是存储的内容。 307。操作规则规则 *和&具有相同的优先级,并且合并正确(从右到左),它们具有相同的优先级,并且合并(从右到左),它们与 + +相同, - ,! ,!这样的单一操作员的优先级是相同的,但高于算术运营商的优先级。其他单一操作员的优先级是相同的,但高于算术运算符 *, /和%。例如:int a = 2,*p =&a,*q =&a;(“%d%dn”
34。,*p+,*(q+);/2 2 p =&a; q =&a;(“%d%dn”,*p,(*q)+);/3 2(参数评估过程从从右到左的参数的评估过程如下:在以下表达式中找到具有等效关系的对;&*p,*&a,(*p)+,&a,a,*p+,*(p+),a+解决方案:解决方案:&*p =&a = p*&a =*p = a(*p)+ = A+*P+=*(P+)318。指针和一维数组指针和一个维数组的数组是连续存储的几个元素的集合。指向此数组中的第一个元素(第一个地址)。
35,第一个地址)。例如:例如:int a10,*p;那么p = a等于p =&a0。某个元素的地址:某个元素的地址:p =&ai。使用指针引用元素:使用指针引用元素。 :*P等于AI数组元素的下标。内部实现时,它会根据数组元素的下标均匀处理。内部实现时,它会根据“基地地址基础地址+位移”的方法均匀处理,即处理它的方法,即A,A+1,A+I,因此意味着它意味着数组元素的地址可用:因此,这意味着数组元素的地址可用:p+i,a+i表示数组元素的内容可用:表示数组元素的内容可用: ai,*(p+i),*(a+i)数组名称,数组名称a(指向数组的指针)和指向数组第一个地址的指针变量(指向数组的指针)与指针p指向数组的第一个地址。不同,a不是变量。不是变量。 32
36.结构1。概述概述有时有必要将不同类型的数据结合到有机整体中。有时有必要将不同类型的数据结合到有机整体中。结构:与不同(或相同)数据类型的几个数据项的组合。结构:与不同(或相同)数据类型的几个数据项的组合。结构与数组不同,因为数组中的每个元素都具有相同的类型。结构与数组不同,因为数组中的每个元素都具有相同的类型。结构是一种数据结构,需要根据用户根据自己的需求和某些规则来定义。结构是一个数据结构,需要根据用户自己的需求定义,并且根据某些规则,即定义结构类型。也就是说,定义结构类型。例如:例如:int num; char; int; int年龄; float
37。得分; 332。定义结构类型变量的方法定义结构类型变量的方法(1)首先定义结构类型,然后定义变量名称首先定义结构类型,然后定义变量名称定义表单:定义表单:例如::结构:类型名称结构类型名称int num;成员列表成员列表char;结构类型名称结构类型名称变量名称变量名称stu1,stu2; (2)定义变量在定义类型的同时定义它们与类型变量定义形式同一时间:定义表格:例如:例如:结构类型类型名称结构类型名称int num;成员列表成员列表char Name2
38。0;可变名称表列变量名称表列; Stu1,Stu2; 34(3)直接定义结构类型变量直接定义结构类型变量定义形式:定义形式:例如:int num;成员列表成员列表char;成员表列;成员表列; Stu1,Stu2;注意:结构类型变量的成员也可以是结构变量。例如:注意:结构类型变量的成员也可以是结构变量。例如:日期int月; int num; int Day; char; int年;日期; Stu1,Stu2; 353。结构类型变量的参考结构
39。体型变量的参考形式:表格:结构变量名称。结构变量名称。会员名称。会员名称“。”。是成员(组件)运营商,在所有运营商中均具有最高优先级。是成员(组件)运营商,在所有运营商中的优先级最高。如果成员本身属于结构类型,则需要使用多个成员操作员,第一级 - 如果成员本身属于结构类型,则需要使用几个成员操作员,按级别按级别找到最低级别的成员。找到最低级别的成员级别。 4。结构数组中的结构数组,每个数组元素都是结构类型数据。在结构数组中,每个数组元素都是结构类型的数据。例如:int num; char; Stu3;数组的每个元素都连续存储在内存中。大批
40。每个元素连续存储在内存中。 365。指向结构变量指针的指针指向结构变量定义形式:定义形式:结构类型名称结构类型名称名称 *指针名称指针名称参考方法:参考方法:( * p)。成员名称成员名称等效于P-MERM名称成员名称等效于结构变量名称结构变量名称。成员名称成员名称 - 称为指针操作员。称为指针操作员。例如:stu1,*p; p =&stu1; p-num = 10;(*p).name =“ li lin”; stu1.num = 20; 37联合有时需要组合几种不同类型的变量在同一内存单元中,即使被覆盖范围覆盖,也有必要将几种不同类型的变量存储到同一内存单元中,即使覆盖
41。覆盖技术,几个变量相互覆盖。这是在同一内存中产生几个不同变量的结构,技术和几个变量。这种使几个不同变量占据相同内存的结构,称为“共同部分”。定义表格:定义表格:例如::: Union共享主体名称联合数据成员表Int I;可变表变量表; char ch; a,b;结构结构的结构的内存长度是每个成员的内存长度的总和,由公共变量的结构化变量的结构占据的内存长度是每个成员的内存长度的总和。内存长度的长度等于成员的长度。在公共身体变量中工作的成员是押金的最后成员。
42。随后的成员被存储在新成员中后失去了效果。例如:-Yam邮报的成员丢失。例如:ai = 1; a.ch = a;只有A.CH是有效的。人工智能没有意图。正义。公共变量的地址与其成员的地址相同。公共变量的地址与其成员的地址相同。 38使用定义类型的定义类型,除了可以直接用于使用C的标准类型名称(例如提供的标准类型名称(例如INT,CHAR,FLOAT等)和您自己的定义,以及结构化的除了共享主体,指针和枚举类型外,主体定义了,除了结构,公共主体,指针和枚举类型外,还可以使用新的名称类型来定义新类型名称而不是现有类型名称。
43 ..例如:int;它指定它指定代表代表int类型,以下两个句子等效。类型,以下两个句子。整数 i,j;我,J;可以定义结构类型:可以定义结构类型:int月;国际日子;国际年;日期;类型。它目前可用,它表示上述定义的结构类型。此时,日期定义变量:定义变量:日期;日期 *p; 39可以进一步:进一步:1。INT;/定义NUM是整数数组到整数编号的整数数组类型。
44。组类型数字n;/定义定义n是整数数组变量是整数数组变量2。char*;/将定义定义为字符指针类型是字符指针类型p,s10;/p是字符指针变量,字符变量,字符是角色,角色是角色,角色是角色。 POIN变量,S是指针数组,作为指针数组3。INT(*)/定义定义为函数函数的指针类型,这是函数函数的指针类型。 ;/p1,p2是一种指针变量。类型指针变量。它通常用于使用大写字母中使用定义的类型名称的习惯,因此系统提供的类型名称可以由系统提供的类型名称表示,以便可以区分提供的标准类型标识符由系统。标准类型标识符不同。