- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
二维数组和字符串二维数组二维表数表(数阵,矩阵)123456学号语文数学外语110010010021101101201.二维数组的定义:数据类型数组名[常量表达式][常量表达式]例:inta[3][4];定义了一个3*4(3行4列)的数组。注意:不能写成inta[3,4];的形式。inta[3,4];定义的是一维数组;数组的标志是[],每一个[]代表一维[0][0][0][1][0][2][0][3][1][0][1][1][1][2][1][3][2][0][2][1][2][2][2][3]C++采用这样的定义方式,使我们可以把二维数组看作是一个特殊的一维数组:它的元素又是一个一维数组。(即把二维数组的每行看作一个元素)例:inta[3][4];可以把a看成一个一维数组,它有3个元素a[0]、a[1]、a[2],每个元素又是含4个元素的一维数组。见下图。 a[0]---a[0][0],a[0][1],a[0][2],a[0][3]aa[1]---a[1][0],a[1][1],a[1][2],a[1][3]a[2]---a[2][0],a[2][1],a[2][2],a[2][3]此时,a[0]、a[1]、a[2]相当于3个一维数组的名字,上面定义的二维数组可以理解为定义了3个一维数组,即相当于inta[0][4],a[1][4],a[2][4];C++的这种处理方法很方便,我们在后面会体会到C++语言中,二维数组中元素在计算机内存中的存放顺序是:按行存放,即先在内存中存放第一行的元素,再放第二行的元素(第一维变化慢,第二维变化快)。例:inta[3][4];二维数组a在内存中的存放顺序为a[0][0],a[0][1],a[0][2],a[0][3],[1][0],a[1][1],a[1][2],a[1][3],a[2][0],a[2][1],a[2][2],a[2][3]C++允许使用多维数组有了二维数组的基础,再掌握多维数组是不困难的。例如,三维实数数组定义为:数据类型数组名[常量表达式][常量表达式][常量表达式];doublea[2][3][4]定义了三位数组,共2*3*4=24个元素。多维数组在内存中的排列顺序类似于二维数组,第一维的下标变化最慢,最右边的下标变化最快。a[0][0][0],a[0][0][1],a[0][0][2],a[0][0][3],a[0][1][0],…二维数组元素的引用数组名[下标][下标]注意:每维下标从0开始;下标不要超过各维的大小。例:inta[3][4];第1行第2列的元素是a[0][1](也可说成第1行的第2个元素是a[0][1])a[2][3]是第3行的第4个元素a[3][3]违法二维数组的初始化对于二维数组有下列初始化方法:分行给二维数组赋初值,如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};这种赋值方法比较直观,把第一对括号内的数值赋给第一行的元素,第二括号内的数值赋给第二行的元素,依此类推。(2)可以将所有数据写在一个花括号内,这时,计算机自动按数组元素在内存中的排列顺序对各元素赋初值。例:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};(3)可以只对数组中部分元素初始化。如:inta[3][4]={{1},{5},{9}};此处的作用表示:a[0][0]元素被赋成1,a[1][0]元素被赋成5,a[2][0]元素被赋成9,而数组中的其他元素被初始化为0(与一维数组的初始化机制相同)(4)如果对二维数组的全部元素初始化,则定义数组时第一维长度可以省略,但第二维长度不能省,如:分行进行初始化,如: inta[][4]={{0,0,3},{},{0,10}}; charc[10]={‘C’,’p’,’r’,’o’,’g’,’r’,’a’,’m’,’\0’};二维数组的赋值、输入、输出使用二重循环,对每个元素赋值、输入和输出:for(inti=0;i3;i++)for(intj=0;j4;j++)//初始化有错误吗?{cina[i][j];a[i][j]*=a[i][j];couta[i][j]endl;}例题1矩阵的行列互换
文档评论(0)