为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数组

2014-02-25 25页 ppt 380KB 21阅读

用户头像

is_316195

暂无简介

举报
数组nullnull类型名规定了数组中每个数组元素的类型。 数组名是用户定义标识符。 数组名后的一对方括号必不可少,方括号内的表达式必须为常量表达式,其值表示数组中数组元素的个数。 常量表达式的值5规定了数组有5个元素,分别是x[0], x[1], x[2], x[3], x[4]。 定义之后,x数组在内存中占用5个连续的存储单元。 关于int x[5]的几点说明:null6.2 一维数组的定义和引用例如:int x[5] 在内存分配常量个连续空间给数组. 数据类型 数组名[常量]; 例:int a[10]; ...
数组
nullnull类型名规定了数组中每个数组元素的类型。 数组名是用户定义标识符。 数组名后的一对方括号必不可少,方括号内的达式必须为常量表达式,其值表示数组中数组元素的个数。 常量表达式的值5规定了数组有5个元素,分别是x[0], x[1], x[2], x[3], x[4]。 定义之后,x数组在内存中占用5个连续的存储单元。 关于int x[5]的几点说明:null6.2 一维数组的定义和引用例如:int x[5] 在内存分配常量个连续空间给数组. 数据类型 数组名[常量]; 例:int a[10]; float b[20],c[30];6.2.1 一维数组的定义 6.2.2 一维数组的引用 6.2.2 一维数组的引用 1.数组同变量一样,必须先定义后引用。 2.引用数组元素的方法是: 数组名[下标]可以是整型常量 或整型常量表达式 也可以为变量.6.2.3 一维数组的初始化6.2.3 一维数组的初始化初始化--在定义数组时对数组中的元素赋初值; 初始化方法: 数组类型 数组名 [数组长度]={数组元素值};null一维数组的初始化可以用以下三种方法实现: 1.顺序列出数组元素的全部初值。 int x[5] = {10, 20, 30, 40, 50}; 2.只给数组的前面一部分元素设定初值。 int x[5] = {10, 20}; 3.当对全部数组元素赋初值时,可以不指定数组元素的个数。 int x[ ] = {10, 20, 30, 40, 50}; null提示: 当指定了数组长度时,不允许赋初值的个数多于数组元素的个数。 如:int x[5] = {10, 20, 30, 40, 50, 60}; 所赋初值的类型应与数组元素的类型一致。如不一致,则会自动转化为与数组元素相同的类型。如:int x[5] = {10.4, 20, 30, 40, 50}; (3) 在单纯地定义语句中,不能出现省略数组长度的情况。如int x[ ];是错误的。6.2.4 一维数组程序举例6.2.4 一维数组程序举例例6.1数组的输出 #include main( ) { int a[5] = {10,20,30,40,50}, i; printf(“ %d, %d, %d, %d, %d\n”, a[0], a[1], a[2], a[3], a[4]); for( i = 0; i < 5; i++ ) printf(“%d, ” , a[i]); printf(“\n”); }例2:例2:main() { int i; double sum, aver, score[5] = {10.0, 20.0, 30.0, 40.0, 50.0}; sum = 0.0; for( i = 0; i < 5; i++ ) sum = sum + score[i]; aver = sum / 5; printf(“sum = %f , aver = %f”, sum, aver); }null6.3 二维数组的定义和引用6.3.1 二维数组的定义定义方式: 类型 数组名[表达式1][表达式2];例:int x[3][4];null说明: (1)类型名规定了数组中每个数组元素的类型。 (2)数组名是用户定义标识符。 (3)数组名后的两对方括号必不可少,之间不能有 空格。方括号内的表达式必须为常量表达式,表达式 1表示数组的行数,表达式2表示数组的列数。它们的 乘积为数组中数组元素的个数。 (4)定义之后,数组的元素按照行的顺序在内存中依次占用连续的存储单元。 null例:int x[3][4];x[0]x[1]x[2](5)二维数组可以看作是由一维数组的嵌套而构成的。null引用形式: 数组名[下标][下标]6.3.2 二维数组元素的引用说明:1.每个下标表达式的值必须是整数,且不得超越数组 定义中各维的上、下界范围。 2.两个下标分别放在两个方括号内。 3. 若要引用二维数组的全部元素,常用二重循环来配合。 例如: int a[3][4],i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(“%d”,&a[i][j]);null6.3.3 二维数组的初始化⒈分行初始化。如: int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};⒉按数组排列的顺序将所有数据写在一个花括号内,如: static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};null⒋如果对全部元素都赋初值,则定义数组时可以不指定第一维的长度,如: int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; ⒊部分元素初始化。如: int a[3][4]={{,1},{0,6},{0,0,11}}; 例 6.4:分析以下程序的输出结果:例 6.4:分析以下程序的输出结果:main( ) { int a[3][3] = { { 1, 2, 9 },{ 3, 4, 8 },{ 5, 6, 7 } }, i, s = 0; for( i = 0; i < 3; i++ ) s += a[i][i] +a[i][3-i-1]; printf(“%d\n”, s); }null6.4 字符数组与字符串6.4.1 字符串的存储形式在存储该字符串时,C语言编译系统会在字符串最后自动加上'\0'作为该字符串的结束标志。'\0'是一个转义字符,它的ASCII码值为0,它在这里作为字符串的结束标识符。"China"字符串的存储形式如图6-3所示:null6.4.2 字符数组和字符串的关系例6.5 char str[10] = {'C', 'h', 'i', 'n', 'a','\0'}; C语言中没有专门的字符串变量,我们使用字符数组来保存字符串常量。C语言中的字符数组, 每个数组元素都是一个字符, 当这些数组元素的最后一个字符是 ' \ 0 ' 时, 我们就认为该字符数组保存的是一个字符串。null6.4.3 将字符串赋值给字符数组通过对单个数组元素赋值2.直接把字符串常量赋值给字符数组例如: c h a r s t r [ 1 0] ={ “ C h i n a ”} ; 或者 c h a r s t r [ 1 0] =" C h i n a ";例如:c h a r s t r [1 0]= { ' C ' , ' h ' , ' i ' , ' n ' , ' a ' , ' \ 0 ' } ;null6.4.4 字符串的输入输出字符串的输出 使用printf函数输出字符串 在printf函数的输出格式控制中,%s代表字符串,可以通过该格式输出字符串。 char str[ ] = "Hello,Huben!"; printf("%s", str); null2.使用puts函数输出字符串 程序在使用puts函数来输出字符串时,要在程序中包含头文件stdio.h puts函数在输出完字符串之后,会自动输出一个换行符。puts的调用格式是: puts (字符数组名); #include { char str[ ] = "Hello,Huben!"; puts(str); } null6.4.5 字符串处理函数(1)字符串比较函数的格式为: strcmp(字符串1,字符串2); 说明: ① 该函数的功能是比较字符串1和字符串2的大小。 ② 字符串比较的方法是:依次对字符串1和字符串2对应位置上的字符从左至右进行两两比较,当出现第1对不相同的字符时,即由这两个字符决定所在字符串的大小。例如: strcmp(“China”,“Chinese”);null(2) 拷贝字符串函数的格式: strcpy(字符数组, 字符串); 说明: ① 这里的“字符串”可以是字符串常量,也可以是字符数组。 ② 将“字符串”复制到“字符数组”中时,字符数组中原有内容被覆盖,并且要添加结束标志“\0” ③ 字符数组定义时元素个数一定要足够大,以便容纳复制过来的字符串。 null(3)连接字符串函数的格式: strcat(字符数组,字符串) ; 该函数的功能是把“ 字符串” 连接到“ 字符数组” 中的字符串尾端, 并存储于“ 字符数组” 中。 注意:字符数组定义时应该有足够的空间来容纳两字符串合并 后的长度。例 :char s1[20] ={“Hello!”}; char s2[] ={“ huben!”}; strcat (s1,s2); /*或 strcat(s1, “ huben!");*/ 则s1中得到字符串“hello! Huben!" 。null(4) 求字符串长度函数的格式: strlen(字符串) ; 该函数的功能是求字符串的实际长度( 不包含结束标志) 。例如:#include #include main( ) { int strlength;l char str[ ] =" huben "; strlength= strlen(str) printf( "字符串长度为%d \ n ", strlength); } 运行程序的结果: 字符串长度为5null例 : 对于以下字符串,strlen(s)的值为: (1)char s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’}; (2)char s[ ]=“\t\v\\\0will\n”; (3)char s[ ]=“\x69\082\n”; 答案:1 3 1
/
本文档为【数组】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索