- 1、本文档共93页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3数据类型2
3.1 数组;使用下标可以访问数组的单个元素,下标值从0到arraySize-1。int ia[10];
声明了一个包含10 个int 对象的数组,每个对象被称作是ia 的一个元素。因此
ival = ia[ 2 ];
将ia 中由2 索引的元素的值赋给ival 。 ia[ 7 ] = ival;
把ival 的值赋给ia 的由7 索引的元素;数组可以被显式地用一组数来初始化,这组数用逗号分开放在大括号中。例如
const int array_size = 3;
int ia[ array_size ] = { 0, 1, 2 };
被显式初始化的数组可以不指定大小值,编译器会根据列出来的元素的个数来确定数组的大小
// 维数为3 的数组
int ia[] = { 0, 1, 2 };;如果指定了大小,那么初始化列表提供的元素的个数不能超过这个值
如果指定的维数大于给出的元素的个数,那么没有被显式初始化的元素将被置为0
// ia == { 0, 1, 2, 0, 0 }
const int array_size = 5;
int ia[ array_size ] = { 0, 1, 2 };
数组应用 例arrayone.cpp;字符数组可以用一个由逗号分开的字符文字列表初始化,文字列表用花括号括起来;或者用一个字符串常量初始化。但是注意这两种形式不是等价的,字符串常量包含一个额外的终止空字符。例如
char ca1[] = { C, +, + };
char ca2[] = C++;
ca1 的维数是3, ca2 的维数是4 。下面的声明将被标记为错误
// 错误: Daniel是7 个元素
char ch3[ 6 ] = Daniel;;一个数组不能被另外一个数组初始化,也不能被赋值给另外一个数组
要把一个数组拷贝到另一个中去,必须按顺序拷贝每个元素。例如
const int array_size = 7;
int ia1[ ] = { 0, 1, 2, 3, 4, 5, 6 };
int main()
{
int ia2[ array_size ];
for ( int ix = 0; ix array_size; ++ix )
ia2[ ix ] = ia1[ ix ];
return 0;
};用户必须清楚,C++没有提供编译时刻或运行时刻对数组下标的范围检查,除了程序员自己注意细节,并彻底地测试自己的程序之外没有别的办法可防止数组越界;多维数组;内嵌在里边的花括号是可选的,下面的初始化与前面的是等价的,只是有点不清楚
int ia[4][3] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
下面的定义只初始化了每行的第一个元素,其余的元素被初始化为0
int ia[ 4 ][ 3 ] = { {0}, {3}, {6}, {9} };
如果省略了花括号结果会完全不同,下面的定义
int ia[ 4 ][ 3 ] = { 0, 3, 6, 9 };
初始化了第一行的3 个元素和第二行的第一个元素,其余元素都被初始化为0
;3.2 指针;声明一个能存放ival 内存地址的指针类型可以这样写
// 一个指向int 类型的指针
int *pint;
C++预定义了一个专门的取地址 操作符 ,当把它应用在一个对象上时返回的是对象的地址值
pint = ival; // 把ival 的地址pint
为了访问pint 所指向的实际对象,必须先用解引用操作符* 来解除pint 的引用 *pint = *pint + 1;
;每个指针都有一个相关的类型,不同数据类型的指针之间的区别不是在指针的表示上,也不在指针所持有的地址值上:对所有类型的指针这两方面都是相同的。
不同之处在于指针所指的对象的类型上
指针的类型可以指示编译器怎样解释特定地址上内存的内容,以及该内存区域应该跨越多少内存单元
如果一个int 型的指针寻址到1000 内存处,那么在32 位机器上跨越的地址空间是1000~1003
如果一个double 型的指针寻址到1000 内存处,那么在32 位机器上跨越的地址空间是1000~1007;在下面的例子中lp 是一个指向long类型对象的指针,而lp2 则是一个long 型的数据对象,不是指针
long *lp, lp2;
在下面的例子中fp 是一个float 型的数据对象而fp2 是一个指向float 型对象的指针
f
您可能关注的文档
- 3.6-日本菜.ppt
- 3——第2章 金融工程的基本分析方法——状态价格定价法.ppt
- 3A-Unit11-Turn-it-down!.ppt
- 3、 总体施组.doc
- 3、任务三 接触器自锁正转控制线路.pptx
- 3_C307手动变速器异响问题说明.ppt
- 3、只拣儿童多处行(定稿 2015、3).doc
- 3、1、2人民代表大会制度:我国的根本政治制度.ppt
- 3、国际结算方式之一——汇款.ppt
- 3D打印机简介.ppt
- 2024年土木工程建筑施工考前冲刺练习试题【培优B卷】附答案详解.docx
- 2024年土木工程建筑施工考前冲刺练习含答案详解(综合题).docx
- 2025年美妆护肤跨境电商物流配送区域配送网络优化方案.docx
- 2025年美妆护肤跨境电商物流配送技术创新报告.docx
- 2025年美妆护肤跨境电商物流配送区域协同效应分析.docx
- 2024年土木工程建筑施工考前冲刺练习带答案详解(综合题).docx
- 2024年土木工程建筑施工考前冲刺练习带答案详解AB卷.docx
- 2024年土木工程建筑施工考前冲刺练习必考附答案详解.docx
- 2024年土木工程建筑施工考前冲刺练习学生专用附答案详解.docx
- 2024年土木工程建筑施工考前冲刺练习往年题考附答案详解.docx
文档评论(0)