for(declaration : expression)
statement
for(xx-type i : P)
....
其一:
for范围类型循环在循环前,可能会对p所在的队列里,对每一个对象进行一次" * ",再赋值给i;
其二:
对于多维数组的for范围循环,除了最里面的for范围循环可以不用引用,其它所有循环控制变量都应该是引用
类型
ia[3][4] = {....};
for(int (&j)[4] : ia)
for(int k:j )
cout << k << " ";
cout << endl;
和
for(int *i :ia )
for(int j: i )
cout << j << " ";
已经不一样了, j值是对ia[0]的引用,i值是对ia[0]的复制而已,i已经不是数组的地址了,只是拥有相同的值
的一个单独的存在。
(可能有点扯)
原文:https://www.cnblogs.com/Liberavi/p/11469734.html