📄 c34.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>多维数组</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<script language="javascript">
var prePage="http://www.nec.sjtu.edu.cn/support/Course/C/c/c3/c/c3/c33.htm";
var nextPage="c/c3/c35.htm";
</script>
<link rel="stylesheet" href="../cstyle.css" type="text/css">
<bgsound src="../voice/c34.au" loop="1">
</head>
<body background="../img/mainback.jpg" bgproperties="fixed">
<h2 align="center"><font face="楷体_GB2312">3.4 多维数组</font></h2>
<hr>
<blockquote>
<h4>1.多维数组的说明</h4>
<p> C 语言除了支持一维数组外,
还支持多维数组。这一节将介绍多维数组。</p>
<p> 看一个二维数组定义的例子吧。<big><font color="#0000FF">int
</font><font color="#FF0000"><strong>array[4][5]</strong></font><font color="#0000FF">;</font></big></p>
<p> 也许你已经注意到,
红色部分与一维数组的定义不同。一般,
我们可以如下那样定义一个三维数组: <br>
</p>
<p align="center"> <font color="#0000FF"><big>int three_dim_array[4][5][6];</big></font></p>
<p align="left"><font color="#FF0000"> 注意</font>: 在多维数组中,
各维的下标都是从 0 开始, 以 n-1 结束的。这和一维数组是一样的。</p>
<h4 align="left">2.多维数组的初始化</h4>
<p align="left"> 多维数组初始化的方法有两种。但是,
数组必须作为 extern 或者 static 存储类来定义。</p>
<div align="left"><pre> 首先, 我们看一下下面的语句:
static int M[3][4]={
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};</pre>
</div><ul>
<li><p align="left">初始化值是按行列出的。内层的 { }
用来分割一行与下一行的列表。最外层的 { }
把所有的列表都括起来。</p>
</li>
<li><p align="left"><font color="#FF0000">注意</font>: 除最后一对内层括号外,
每一对内层括号后面都要有一个逗号。</p>
</li>
</ul>
<p align="left"> 内层大括号对的使用实际上是任选的。
如果未选用, 那么初始化是按行进行的。
这就是多维数组初始化的第二种方法。这样,
前面的初始化语句也可以如下那样写: </p>
<p align="center"><big><font color="#0000FF">static int
M[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};</font></big></p>
<p align="left"> 和一维数组一样,
不要求对整个多维数组进行初始化。余下的元素被初始化为 0。</p>
<div align="left"><pre> 请看一下这个例子:
static M[3][4]={ {1,2,3},
{4,5,6},
{7,8,9} };
想一下这句语句的结果是什么。(假设数组的起始内存地址是:0100H)</pre>
</div><p align="center"><!-- Aftershock c314.swf 3=220 4=430 17 18 19 40 -->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0" ID="c314"
WIDTH="220" HEIGHT="430">
<param name="movie" value="../movie/c314.swf">
<param name="play" value="false">
<param name="loop" value="false">
<param name="quality" value="autohigh">
<param name="menu" value="false">
<param name="bgcolor" value="#E6E6E6"><embed SRC="../movie/c314.swf" swLiveConnect="FALSE" WIDTH="220" HEIGHT="430" PLAY="false"
LOOP="false" QUALITY="autohigh" MENU="false" BGCOLOR="#E6E6E6"
TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
</object>
<!-- EndAftershock c314.swf --> </p>
<p align="left"> 现在,
我们再来看一个使用第二种初始化方法的例子。</p>
<div align="left"><pre>static int M[3][4]={1,2,3,4,5,6,7,8,9} ;</pre>
</div><p align="left">请想一下它的结果。请注意这两个例子间的差别。</p>
<p align="center"> <!-- Aftershock c315.swf 3=220 4=430 17 18 19 40 -->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0" ID="c315"
WIDTH="220" HEIGHT="430">
<param name="movie" value="../movie/c315.swf">
<param name="play" value="false">
<param name="loop" value="false">
<param name="quality" value="autohigh">
<param name="menu" value="false">
<param name="bgcolor" value="#E6E6E6"><embed SRC="../movie/c315.swf" swLiveConnect="FALSE" WIDTH="220" HEIGHT="430" PLAY="false"
LOOP="false" QUALITY="autohigh" MENU="false" BGCOLOR="#E6E6E6"
TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
</object>
<!-- EndAftershock c315.swf --> </p>
</blockquote>
<p align="center"><a href="http://www.nec.sjtu.edu.cn/support/Course/C/c/c3/c35.htm"><img src="../img/next.gif" width="145" height="30"
alt="next.gif (3633 bytes)" border="0"></a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -