c++ primer 3.6节练习答案
练习3.43
版本1
1 int main() 2 { 3 using int_array = int[4]; 4 int cnt = 0; 5 int ia[3][4]; 6 for (int_array &p : ia) 7 for (int &q : p) 8 { 9 q = cnt; 10 cnt++; 11 } 12 13 c16 system("pause"); 17 return 0; 18 }
版本2
1 int main() 2 { 3 using int_array = int[4]; 4 int cnt = 0; 5 int ia[3][4]; 6 for (int_array &p : ia) 7 for (int &q : p) 8 { 9 q = cnt; 10 cnt++; 11 } 12 13 for (int_array *p = ia;p != &ia[2];p++) 14 for (int *q = *p;q != p[2];q++)// 这个地方为什么是p[2],不是3,试过3会输出别的数字 15 cout << *q << " "; 16 system("pause"); 17 return 0; 18 }
版本2
1 int main() 2 { 3 int ia[3][4] = { 4 {0,1,2,3}, 5 {4,5,6,7}, 6 {8,9,10,11} 7 }; 8 for (auto i = 0;i != 3;i++) 9 for (auto j = 0; j != 4;j++) 10 cout << ia[i][j] << " "; 11 system("pause"); 12 return 0; 13 }
版本3
1 int main() 2 { 3 using int_array = int[4]; 4 int cnt = 0; 5 int ia[3][4]; 6 for (int_array &p : ia) 7 for (int &q : p) 8 { 9 q = cnt; 10 cnt++; 11 } 12 13 for (int_array *p = ia; p != ia + 3; p++) 14 for (int *q = *p; q != *p + 4; q++) 15 cout << *q << " "; 16 system("pause"); 17 return 0; 18
练习3.44
在上面已经替换了
练习3.45
选择一种版本替换
1 int main() 2 { 3 int cnt = 0; 4 int ia[3][4]; 5 for (auto &p : ia) 6 for (auto &q : p) 7 { 8 q = cnt; 9 cnt++; 10 } 11 12 for (auto &p : ia) 13 for (auto &q : p) 14 cout << q << " "; 15 system("pause"); 16 return 0; 17 }
浙公网安备 33010602011771号