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;
}
}
}
#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;
}
}
}