读书人

问个很无聊的有关问题

发布时间: 2012-02-27 10:00:22 作者: rapoo

问个很无聊的问题
#define N
int a[N],b[N];
int t;//1
for(int i=0;i <N;i++)
{
if(a[i]> b[i])
{
t = a[i];
a[i] = b[i];
b[i]=t;
}
}

#define N
int a[N],b[N];
for(int i=0;i <N;i++)
{
int t;//2
if(a[i]> b[i])
{
t = a[i];
a[i] = b[i];
b[i]=t;
}
}

#define N
int a[N],b[N];
for(int i=0;i <N;i++)
{
if(a[i]> b[i])
{
int t;//3
t = a[i];
a[i] = b[i];
b[i]=t;
}
}

像这种临时变量t,放在那个位置好呢?为什么?

[解决办法]
提一个不同看法。
从编译器的兼容性来讲,第1种好。第1种情况基本上什么编译器都能编译通过。
如果在一个函数中,有可能有多个这样的for循环,有一些编译器上可能遇到问题。
建议搂主使用第1种方式。
另外建议楼主把for循环里的i也提到前面去。


读书人网 >C++

热点推荐