<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://d2school.com/bcyl/bhcpp/newls/ls17.htm -->
<HTML><HEAD><TITLE>教学--第十七章 数组(二)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>P {
MARGIN: 1px 2px; LINE-HEIGHT: 150%
}
.节标题 {
FONT-WEIGHT: bold; FONT-SIZE: 12pt
}
TD {
FONT-SIZE: 9pt
}
.tdtitle {
FONT-SIZE: 20pt
}
.celltopline {
BORDER-TOP: #000000 1px solid
}
.menucell {
FONT-SIZE: 10pt
}
A:link {
FONT: 10pt 宋体; COLOR: blue; TEXT-DECORATION: none
}
A:visited {
FONT: 10pt 宋体; COLOR: purple; TEXT-DECORATION: none
}
A:active {
FONT: 10pt 宋体; COLOR: red; TEXT-DECORATION: underline
}
A:hover {
COLOR: blue; TEXT-DECORATION: underline
}
</STYLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=3>
<CENTER>
<TABLE height=105 cellSpacing=4 cellPadding=4 width=760 border=0>
<TBODY>
<TR>
<TD
style="FONT-SIZE: 10pt; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; FONT-FAMILY: ËÎÌå"
width="100%" height=210>
<H2>第十七章 数组(二)</H2>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.1">17.1
数组与内存</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.1.1">17.1.1
数组的内存结构</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.1.2">17.1.2
数组的内存地址</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.1.3">17.1.3
数组元素的内存地址</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.1.4">17.1.4
数组访问越界</A>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.2">17.2
二维数组</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.2.1">17.2.1
二维数组基本语法</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.2.2">17.2.2
二维数组初始化</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.2.3">17.2.3
二维数组的内存结构</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.2.4">17.2.4
二维数组的内存地址</A>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.3">17.3
二维数组实例</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.3.1">17.3.1
用二维数组做字模</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.3.2">17.3.2
二维数组在班级管理程序中应用</A>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.4">17.4
三维和更多维数组</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.4.1">17.4.1
多维数组的定义与初始化</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.4.2">17.4.2
多维数组的<SPAN lang=zh-cn>示例</SPAN></A>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.5">17.5
数组作为函数的参数</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.5.1">17.5.1
数组参数默认是传址方式</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.5.2">17.5.2
可以不指定元素个数</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.5.3">17.5.3
数组作为函数参数的上机实例</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.5.4">17.5.4
二维及更多维数组作为函数参数</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.5.5">17.5.5
函数的返回值类型不能是数组</A>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.6">17.6
sizeof<SPAN lang=zh-cn>用在数组上</SPAN></A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.6.1">17.6.1
用sizeof自动计算元素个数</A>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls17.htm#17.6.2">17.6.2
sizeof对数组参数不可用</A>
<P> </P>
<H3><B><A name=17.1>17.1</A> 数组与内存</B></H3>
<P>变量需要占用内存空间,内存空间有地址。<SPAN
lang=zh-cn>不同数据类型的变量,可能占用不同的内存大小及有不同的内存结构。</SPAN></P>
<P><SPAN
lang=zh-cn>以前我们所学都称为“简单数据类型”,如:</SPAN>int,char,float,double,bool<SPAN
lang=zh-cn>。像</SPAN> char,bool,<SPAN
lang=zh-cn>只占用一个字节,所以我们不去管它的的“结构”,其余如</SPAN>int,float,double<SPAN
lang=zh-cn>占用多个字节,但比较简单,适当的时候我们会去探讨4个字节是如何组成一个整数。</SPAN></P>
<P><SPAN
lang=zh-cn>后来我们学习了数组。数组变量占用内存的大小是不定的,因为不同的数组变量除了类型可以不同,还可以拥有不同个数的元素,这两点都影响它的大小。</SPAN></P>
<P> </P>
<P><SPAN
lang=zh-cn>因此,数组是我们第一个要着力研究它的结构的数据类型。和后面我们还要学习的更多数据类型相比,数组的结构还是相当简单的。简单就简单在它的各个元素大小一致,整整齐齐地排列。</SPAN></P>
<P> </P>
<H4><B><A name=17.1.1>17.1.1</A> 数组的内存结构</B></H4>
<P>变量需要占用内存空间,内存空间有地址。</P>
<P> </P>
<P>声明一个整型变量</P>
<P> </P>
<P><SPAN lang=en-us>int a;</SPAN></P>
<P> </P>
<P>系统会为该变量申请相应大小的空间,一个int类型的变量时,需要占用4个字节的空间,如下图:</P>
<P><IMG height=125 src="教学--第十七章 数组(二).files/ls001.gif" width=385
border=0></P>
<P>也就是说,一个 int 类型的变量,它的内存结构就是 “4个连续的字节”。</P>
<P> </P>
<P>当我们声明一个数组:<SPAN lang=en-us>int arr[100];</SPAN></P>
<P> </P>
<P>我们可以想像,<SPAN lang=en-us>arr</SPAN>数组在内存中占用了100 <SPAN lang=en-us>*
sizeof(int)</SPAN> 个字节。</P>
<P> </P>
<P>现在请大家打开<SPAN lang=en-us>Windows</SPAN>的画笔程序,家画一个数组的内存结构示意图。</P>
<P> </P>
<H4><B><A name=17.1.2>17.1.2</A> 数组的内存地址</B></H4>
<P> </P>
<P>一个<SPAN
lang=en-us>int</SPAN>类型变量,占用4个字节的内存,其中第一个字节的位置,我们称为该变量的内存地址。</P>
<P>同样,一个数组变量,占用一段连续的内存,其中第一个字节的位置,我们称为该数组变量的内存地址。</P>
<P> </P>
<P>还记得 <SPAN lang=en-us>& </SPAN>这个符号吗?通过它我们可以得到指定变量的内存地址。</P>
<P> </P>
<P><SPAN lang=en-us>int a;</SPAN></P>
<P><SPAN lang=en-us>cout << &a << endl;</SPAN></P>
<P> </P>
<P><SPAN lang=en-us>& </SPAN>称为“取址符”。如果你有点记不清,可以查看以前的课程。</P>
<P> </P>
<P>本章第一个需要你特别注意的内容来了:</P>
<P>查看数组变量的地址,不需要使用<SPAN lang=en-us> &
</SPAN>。下面的话是一个原因也是一个结论,你必须记住。</P>
<P> </P>
<P><FONT
color=#ff0000><B>C,C++语言中,对数组变量的操作,就相当于直接对该数组变量的地址的操作。</B></FONT></P>
<P> </P>
<P>因此,想要查看一个数组变量的地址,代码为:</P>
<P> </P>
<P><SPAN lang=en-us>int arr[10];</SPAN></P>
<P><SPAN lang=en-us>cout << arr << endl;
//</SPAN>注意,<SPAN lang=en-us>arr</SPAN>之前无需<SPAN lang=en-us> &
</SPAN>。</P>
<P> </P>
<P>现在,请大家打开<SPAN lang=en-us>CB,</SPAN>然后将上面代码写成完整的一个控制台程序,看看输出结果。</P>
<P> </P>
<H4><B><A name=17.1.3>17.1.3</A> 数组元素的内存地址</B></H4>
<P> </P>
<P>一个数组变量包含多个连续的元素,每一个元素都是一个普通变量。因此,对就像对待普通变量一样可以通过<SPAN
lang=en-us>&</SPAN>来取得地址:</P>
<P> </P>
<P><SPAN lang=en-us>//</SPAN>查看数组中第一个元素的地址:</
没有合适的资源?快使用搜索试试~ 我知道了~
白话C++ 2008版本
共211个文件
gif:148个
jpg:40个
htm:23个
需积分: 10 8 下载量 46 浏览量
2009-02-11
11:29:36
上传
评论
收藏 1.16MB RAR 举报
温馨提示
授"不专业"的课:所写的教程完全从0开始,面向所有非软件专业的人员。 讲的全是C++,以及它最好的“伙伴”: C++、STL、boost、wxWidgets、PHP、Python、Apahce、wxWidgets……
资源推荐
资源详情
资源评论
收起资源包目录
白话C++ 2008版本 (211个子文件)
ls16003.gif 16KB
ls16002.gif 11KB
ls12.h7.gif 8KB
ls13.h23.gif 7KB
ls20.h3.gif 7KB
ls12.h4.gif 7KB
ls09.h1.gif 7KB
ls09.h2.gif 7KB
ls13.h17.gif 7KB
ls08.h21.gif 6KB
ls19.h5.gif 6KB
ls16.h8.gif 6KB
ls11.h2.gif 6KB
ls17.h1.gif 6KB
ls08.h5.gif 6KB
ls06.h2.gif 6KB
cd01.gif 6KB
ls20.h11.gif 5KB
ls13.h16.gif 5KB
ls14.h4.gif 5KB
ls08.h9.gif 5KB
ls001.gif 5KB
ls20.h12.gif 5KB
ls08.h24.gif 5KB
ls06.h6.gif 5KB
ls20.h4.gif 5KB
ls13.h6.gif 5KB
ls09t8.gif 5KB
ls13.h8.gif 5KB
ls08.h22.gif 5KB
tmp.gif 5KB
sizeofbb.gif 5KB
ls08.h18.gif 5KB
ls08.h23.gif 5KB
ls16004.gif 4KB
ls08.h12.gif 4KB
ls23.h2.gif 4KB
ls13.h14.gif 4KB
ls13.h11.gif 4KB
ls12.h1.gif 4KB
ls10.h1.gif 4KB
ls11.h3.gif 4KB
ls08.h15.gif 4KB
ls15.h9.gif 4KB
ls19.h9.gif 4KB
ls12.h6.gif 4KB
ls15.h10.gif 4KB
ls13.h7.gif 4KB
ls13.h15.gif 4KB
ls12.h2.gif 4KB
ls13.h21.gif 4KB
ls13.h22.gif 4KB
ls15.h11.gif 4KB
ls13.h5.gif 4KB
ls05.h2.gif 4KB
ls12.h3.gif 4KB
ls04.h1.gif 3KB
arrpara.gif 3KB
ls14.h1.gif 3KB
arr21.gif 3KB
ls09t6.gif 3KB
ls10.h2.gif 3KB
ls06.h5.gif 3KB
ls15.h4.gif 3KB
ls08.h17.gif 3KB
ls19.h6.gif 3KB
ls08.h8.gif 3KB
ls15.h1.gif 3KB
ls17.h6.gif 3KB
ls10.h6.gif 3KB
ls10.h7.gif 3KB
ls15.h6.gif 3KB
ls13.h19.gif 3KB
ls09t1.gif 3KB
ls09t4.gif 3KB
ls13.h4.gif 3KB
ls10.h5.gif 3KB
ls06.h4.gif 3KB
ls08.h14.gif 3KB
ls13.h20.gif 3KB
ls05.h1.gif 3KB
ls09t5.gif 3KB
ls21.h2.gif 3KB
ls11.h1.gif 3KB
ls14.h5.gif 3KB
ls19.h1.gif 3KB
ls10.h4.gif 2KB
ls12.h9.gif 2KB
ls16.h6.gif 2KB
wavsmp.gif 2KB
ls16.h7.gif 2KB
ls23.h3.gif 2KB
ls15.h5.gif 2KB
ls17.h2.gif 2KB
arrmem.gif 2KB
ls15.h12.gif 2KB
pointer.gif 2KB
ls21.h1.gif 2KB
ls15.h3.gif 2KB
ls13.h10.gif 2KB
共 211 条
- 1
- 2
- 3
资源评论
vain2008
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功