为什么省略for(; ; )中的初始值就无法运行?
Visual C++2010平台本地C++
// 12*12乘法表
#include<iostream>
#include<iomanip>
using std::cout;
using std::endl;
using std::setw;
int main()
{
int size (12);
int i (1), j (1);
cout << "\t" << size << " by " << size << endl << endl;
cout << setw(7) << "|";
for (i =1; i <= size; i++)
cout << setw(5) << i;
cout << endl << setw(7) << "|";
for (i = 1; i <= size; i++)
cout << setw(5) << "___";
for (i =1; i <= size; i++)
{
cout << endl << setw(2) << i << setw(5) << "|";
for (j =1; j <= size; j++)
cout << setw(5) << i*j;
}
cout << endl;
return 0;
}
当我将
for (j =1; j <= size; j++)
cout << setw(5) << i*j;
改成
for ( ; j <= size; j++)
cout << setw(5) << i*j;
这个嵌套程序就无法运行。
请问是什么原因?
只是省略了子程序中的初始值,而且我在int main()中开头部分已经int i (1), j (1);
但是将第一组for (i =1; i <= size; i++)改成for ( ; i <= size; i++)却可以运行。
请问这两者有什么区别?
谢谢。
[ 本帖最后由 fgfdfg 于 2011-6-25 19:06 编辑 ]