倍富馨 Include 第四章 tde fine EPs vold main doub 用户自定义函数原型说明 scani pI 1of sin( double II while( fab n=n+1 信息科学技术学院C语言程序设计教学组
C Programming Language>第四章 第四章数组 ★内容提要: 数组的定义说明规则 一维数组定义说明 数组名与数组元素的引用 数组的传地址方式 数组的存储结构形式 一维数组的引用 数组、算法与应用 设 数组作参数的传地址方式 数组为基础的算法应用 字符数组与应用 字符数组应用与编程 多维数组与存储结构 U bajin(slc,( cnb:
第四章 数组 ★ 内容提要: 数组的定义说明规则 数组名与数组元素的引用 数组的存储结构形式 数组作参数的传地址方式 数组为基础的算法应用 字符数组应用与编程 ➢ 一维数组定义说明 ➢ 数组的传地址方式 ➢ 一维数组的引用 ➢ 数组、算法与应用 ➢ 字符数组与应用 ➢ 多维数组与存储结构
C Programming Language>第四章 1数组是同类型激据元泰的有序集 合,即数组由基本类型(整型、实 型、字符、指针等变量)组合而成。 这种组合可以层层组合,但最低 级的成员必须由基本类型的元素构 成,即数组元素必须是基本类型的 量。 U bajin(slc,( cnb:
数组是同类型数据元素的有序集 合,即数组由基本类型(整型、实 型、字符、指针等变量)组合而成。 这种组合可以层层组合,但最低一 级的成员必须由基本类型的元素构 成,即数组元素必须是基本类型的 量
C Programming Language>第四章 4.1一维数组的定义与说明 数组必须先定义后使用。定义形式: 类型表识符数组名[常量表达式], ●0●● 说明: ①[]:为数组下标运算符;在此表示定义一个指定 名称的数组并为其开辟由常量表达式确定大小的连续 的存储空间; ②数组名:代表该数组存储空间的起始地址,取名规 则同变量; U bajin(slc,( cnb:
数组必须先定义后使用。定义形式: 4.1 一维数组的定义与说明 类型表识符 数组名[ 常量表达式 ],……; 说明: ① [ ]:为数组下标运算符;在此表示定义一个指定 名称的数组并为其开辟由常量表达式确定大小的连续 的存储空间; ② 数组名:代表该数组存储空间的起始地址,取名规 则同变量;
C Programming Language>第四章 数组必须先定义后使用。定义形式 类型表识符数组名[常量表达式], ③常量表达式:其值作为所定义数组的长度(大小) 定义数组时必须指定数组的大小,不能包含变量,且 必须是正的整型常量表达式。 ④数组的下标:从0开始,最后一个元素的下标应为 设 “数组长度-1”。 例:设有inta[10];则数组的大小为10,其元素有: a[0],a[1],a[2],a[3], [9] U bajin(slc,( cnb:
④ 数组的下标:从0开始,最后一个元素的下标应为 “数组长度-1”。 例:设有int a[10];则数组的大小为10,其元素有: a[0], a[1], a[2], a[3], ……,a[9] ③ 常量表达式:其值作为所定义数组的长度(大小)。 定义数组时必须指定数组的大小,不能包含变量,且 必须是正的整型常量表达式。 数组必须先定义后使用。定义形式: 类型表识符 数组名[ 常量表达式 ],……;
C Programming Language>第四章 数组必须先定义后使用。定义形式 类型表识符数组名[常量表达式],…; ⑤定义数组时必须指定数组的大小:只有两 种情况(场合)可以省略数组长度的说明,而 用[]替代 设 是数组名作为被调函数的参数,其存储空 间和大小由主调函数的实参数组传递确定 U bajin(slc,( cnb:
⑤ 定义数组时必须指定数组的大小:只有两 种情况(场合)可以省略数组长度的说明,而 用[ ]替代。 ◼ 一是数组名作为被调函数的参数,其存储空 间和大小由主调函数的实参数组传递确定。 数组必须先定义后使用。定义形式: 类型表识符 数组名[ 常量表达式 ],……;
C Programming Language>第四章 main()i 是数组名 static char str1[30]={“ zhang jia”}; 作为被调函数 static char str2[30]={“ zhang yi”} 的参数,其存 储空间和大小 由主调函数的 strcmp( strl, str2 实参数组传递 确定。 int strcmp(char s[ ], char t[ ])t 设 激组名代表激组存储单元的起始地址,数组名 作为函数的参数,其激据传递方式属传地址方式 。其实质是形参和实参共享存储空间。以达到数 据双向传递的目的。 U bajin(slc,( cnb:
main( ){ static char str1[30]={“zhang jia”}; static char str2[30]={“zhang yi”}; …… strcmp( str1, str2 ); …… } int strcmp(char s[ ], char t[ ] ){ …… } 数组名代表数组存储单元的起始地址,数组名 作为函数的参数,其数据传递方式属传地址方式 。其实质是形参和实参共享存储空间。以达到数 据双向传递的目的。 ◼ 一是数组名 作为被调函数 的参数,其存 储空间和大小 由主调函数的 实参数组传递 确定
C Programming Langnage>第四章 main static char strl30l={“ zhang jia"”}; strcmp(char sll, char tl) static char str2|30}={“ zhang yi”}; strcmp( strl, str2 通过传地址方式实现 双向传递 mainO 101234 89 2000 hang回ia str2 0 2345678910 3000 h g 10 蓝线表示传递红 strcmp04000200040043000 线表示指向 U odEco:
main( ){ static char str1[30]={“zhang jia”}; static char str2[30]={“zhang yi”}; …… strcmp( str1, str2 ); …… } strcmp(char s[],char t[] ) { …… } 通过传地址方式实现 双向传递 0 z h a n g □ j i …… 1 2 3 4 5 6 7 …… 29 a \0 str1 8 9 10 2000 main() 0 z h a n g □ j i …… 1 2 3 4 5 6 7 …… 29 a \0 str1 8 9 10 2000 main() 0 z h a n g □ y i …… 1 2 3 4 5 6 7 …… 29 \0 str2 8 9 10 3000 0 z h a n g □ y i …… 1 2 3 4 5 6 7 …… 29 \0 str2 8 9 10 3000 蓝线表示传递红 strcmp() 线表示指向 s 4000 t 4004 t 2000 4004 3000
C Programming Language>第四章 数组必须先定义后使用。定义形式 类型表识符数组名[常量表达式],…; ⑤定义数组时必须指定数组的大小:只有两 种情况(场合)可以省略一维数组长度的说明, 而用[]替代。 二是静态的局部数组或外部数组赋初值时 设 对数组赋初值意味着对全体数组元素赋初值 数组的长度可由初值个数确定。但当初值的个 数不等于数组元素个数时长度必须显式说明。 U bajin(slc,( cnb:
⑤ 定义数组时必须指定数组的大小:只有两 种情况(场合)可以省略一维数组长度的说明, 而用[ ]替代。 数组必须先定义后使用。定义形式: 类型表识符 数组名[ 常量表达式 ],……; ◼ 二是静态的局部数组或外部数组赋初值时, 对数组赋初值意味着对全体数组元素赋初值, 数组的长度可由初值个数确定。但当初值的个 数不等于数组元素个数时长度必须显式说明
C Programming Language>第四章 ■二是静态的局部数组或外部数组赋初值时,对数组 赋初值意味着对全体数组元素赋初值,数组的长度可 由初值个数确定。但当初值的个数不等于数组元素个 数时长度必须显式说明。 main()I static char strl[ ] =zhang jia") static char str2[]={“ zhang yi” strl 0 23456 89 2000 ha ng回jta 10 以字符串形式赋 初值,系统自动st2012345678 添加串结束符。3000 zhang回st USE bajin@ usle odhILcng