3.6节练习
来源:互联网 发布:linux 卸载自带的svn 编辑:程序博客网 时间:2024/05/12 13:31
练习3.43
二维数组输出 版本1:
int main(){ constexpr size_t rowCnt = 3, colCnt = 4; int array[rowCnt][colCnt] = { 0,1,2,3,4,5,6,7,8,9,10,11 }; /* 在for范围语句中,expresstion是一个对象,用于表示一个序列,而daclaration定义一个变量用于访问序列中的基础元素。 此处,array为二维数组对象,若使用引用,则其基本元素为内置四维数组,即定义四维整数数组的引用; 若不使用引用,for (int *q : *p) 出现“此基于范围的for语句需要适合的begin函数,但未找到”。不使用引用则编译器自动将二维数组名转换成指向首元素的指针,因此array为int*类型,所以daclaration只能为int* p;所以即不能访问内置数组中的元素???范围for语句的begin和end需要再查资料学习??? */ for (int (&p)[4] : array) { for (int q : p) { //使用引用,则p为四维整数数组的引用。作为序列,其基本元素即为int cout << q << " "; } cout << endl; } return 0;}
二维数组输出 版本2:
int main(){ constexpr size_t rowCnt = 3, colCnt = 4; int array[rowCnt][colCnt] = { 0,1,2,3,4,5,6,7,8,9,10,11 }; for (int i = 0;i != rowCnt;i++) { for (int j = 0;j != colCnt;j++) { cout << array[i][j] << " "; } cout << endl; } return 0;}
二维数组输出 版本3:
int main(){ constexpr size_t rowCnt = 3, colCnt = 4; int array[rowCnt][colCnt] = { 0,1,2,3,4,5,6,7,8,9,10,11 }; /* 错误语句:int (*p)[] = array; int(*)[4]类型不能用于初始化int(*)[]类型的实体 array为二维数组名,其指向第一个元素(内层数组),即为指向数组的指针,所以类型为int(*)[4] 此处类型必须为int(*p)[4],表示指向四个整数的数组的指针 */ for (int (*p)[4] = array;p != array+rowCnt;p++) { /* 错误语句:q != colCnt; !=操作符两侧操作数类型不兼容(int *和size_t) *p为首个内层数组的地址,因此对地址加常值表达式,相当于后边的地址,q也为地址 */ for (int *q = *p ;q != *p+colCnt;q++) { cout << *q << " "; } cout << endl; } return 0;}
练习3.44
二维数组输出 (使用类型别名):
0 0
- 3.6节练习
- C++primer 5 :3.6节练习,练习3.43,练习3.44,练习3.45
- 【SICP练习】105 练习3.5-3.6
- C++ Primer 练习答案 1.2节练习
- C++ Primer 练习答案 1.4节练习
- 第一章 1.1节练习
- 第一章 1.2节练习
- 第一章 1.3节练习
- 10.1节练习
- 10.2.1节练习
- 10.2.2节练习
- 10.2.3节练习
- 10.3.1节练习
- 10.3.2 节练习
- 10.3.3节练习
- 10.3.4节练习
- 10.4.1节练习
- 10.4.2 节练习
- 富文本 工具栏自定义 CKEditor 和 UEditor
- 12 个非常实用的 jQuery 代码片段
- ProgressDialog样式
- this指针的介绍和用法
- HTML5+CSS3的应用?零基础到精通?
- 3.6节练习
- XCode7,打包上传的一些警告,及参考处理方法
- Gist代码共享
- 背景音乐
- Bootstrap弹出层model上自定义的弹出层中input输入框失效, 无法输入
- (10)Java多线程之再看生产者/消费者模式
- jquery学习(三)DOM
- Android硬件加速原理与实现简介
- js 总结累计大全