读书人

C++有关问题求解决

发布时间: 2012-04-18 15:01:59 作者: rapoo

C++问题,求解决!
有一段程序如下写
#include <iostream>

using namespace std;


int main()
{
int ia[3][4] ={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int (*p)[4] = ia;
for ( p = ia;p != ia+3; p++)
for(int *q = *p;q != *p+4;q++)
cout<<*q<<endl;
return 0;
}

可以正常遍历二维数组的值并且输出。可改为如下就不能编译通过,请大牛解释下。
#include <iostream>

using namespace std;


int main()
{
int ia[3][4] ={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
for ( int (*p)[4] = ia ;p != ia+3; p++)
for(int *q = *p;q != *p+4;q++)
cout<<*q<<endl;
return 0;
}

[解决办法]
LZ什么编译器啊??
VS2008编译没问题
[解决办法]
明显一样的啊。

而且我试了,可以编译。

这是C++ Primer上的一道题。
[解决办法]

探讨

LZ什么编译器啊??
VS2008编译没问题

[解决办法]
估计是vc6之类的编译器,在VC6上确实编译不过。
[解决办法]
什么情况?
[解决办法]
探讨

引用:
LZ什么编译器啊??
VS2008编译没问题

编译器版本:Microsoft <R> 32-bit C/C++ Optimizing
Compiler Version 12.00.8168 for 80*86

[解决办法]
C/C++ code
#include <iostream>using namespace std;int main(){    int ia[3][4] ={        {1,2,3,4},        {5,6,7,8},        {9,10,11,12}    };    for ( int *p = ia[0] ;p != ia[3]; p+=4)    {        for(int *q = p+0;q != p+4;q++)        {            cout<<*q<<endl;        }    }    return 0;}
[解决办法]
编译器问题!
[解决办法]
++
上一次有个考试,用的什么wint,
for(int i=0;i<10;i++)
这都编译不了,非得把变量声明在外面。楼主看起来也遇到了如此问题啊!
[解决办法]
你是什么编译器啊,估计是比较旧的编译器,在旧式编译器中,比如:for(int i = 0;;){},在这个循环结束后,变量i仍然可以使用,现在C++标准中去掉了,建议你换个编程环境吧,用个能够兼容C++标准的编译器,比如vs2008或VS2010

读书人网 >C++

热点推荐