C++ primer 第五版 第三章练习答案

3.43

1----使用范围for

#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;

int main() {
	int ia[2][3] = {
		{ 0,1,2 },
		{ 2,3,4 }
	};
	for (int (&row)[3] : ia) {
		for (int col : row) {
			cout << col << endl;
		}
	}
}

2----for语句使用下标运算符

#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;

int main() {
	int ia[2][3]{
		{0,1,2},
		{2,3,4}
	};
	
	for (int i = 0; i <= 1; ++i) {
		for (int q = 0; q <= 2; ++q) {
			cout << ia[i][q] << endl;

		}
	}

}

3----for语句使用指针

#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;

int main() {
	int ia[2][3]{
		{ 0,1,2 },{ 2,3,4 }
	};
	for (int (*p)[3] = ia; p != ia + 2; ++p) {
		for (int* q = *p; q != *p + 3; ++q) {//p指向一个数组而q指向一个整数
			cout << *q << endl;
		}
	}
}

3.44

#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;
typedef int int_array[3];
int main() {
	int ia[2][3]{
		{ 0,1,2 },{ 2,3,4 }
	};
	for (int_array *p = ia; p != ia + 2; ++p) {
		for (int *q = *p; q != *p + 3; ++q) {
			cout << *q << endl;
		}
	}
	
}

3.45

1----指针auto改写

#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;
typedef int int_array[3];
int main() {
	int ia[2][3]{
		{ 0,1,2 },{ 2,3,4 }
	};
	for (auto p = ia; p != ia + 2; ++p) {
		for (auto q = *p; q != *p + 3; ++q) {
			cout << *q << endl;
		}
	}
	
}


2----范围for循环auto改写

#include "stdafx.h"
#include<string>
#include<iostream>
using namespace std;
typedef int int_array[3];
int main() {
	int ia[2][3]{
		{ 0,1,2 },{ 2,3,4 }
	};
	for (auto &p : ia) {
		for (auto q : p) {
			cout << q << endl;
		}
	}
	
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值