(查了半天的原因的我,一直冷静不下来)
在同班同学大部分都用VC6++的情况下我也只能盲目跟从使用VC6++,后来发现VC6++的重大弊端之一,不得不说,VC6++的问题真的太多了,跟Dev比起来,还是Dev更好点……
如图,我们可以看到关于这些错误的代码号,如果在官方发布的代码表查询下不难发现这些都是关于a[n]里面的变量问题,就算前面n的值是由cin给的,但根据VC6++的逻辑来看,似乎好像只能看成一个未知数,所以IDE会报错
如果你想了解关于错误事项的代码表又苦于英语不好的同学们,请点击点我来查询各种错误的代码对于的中文解释,希望这篇文章能帮助到VC6++的同学。
好了,开始说正事:
VC6++无法使用动态数组
代码图:
#include<iostream>
using namespace std;
int main()
{
int n,t;
cin>>n;//给n赋值
int a[n];//问题的根本原因之处!!!
for(int i=1;i<=n;i++)
cin>>a[i];
for(int x=1;x<n;x++)
for(int y=1;y<=n-x;y++)
if(a[y]<a[y+1])
{
t=a[y];
a[y]=a[y+1];
a[y+1]=t;
}
cout<<a[1];
return 0;
}
效果图
VC6++:
Dev C++:
关于报错的各种错误代码对应的中文解释:
- 不能使用变量为数组下标
- 长度不能为0(这个如果数组没有分配成功是会随着上面一块报出来)
- 就算数组不给变量,也会报错
通过看以上的IDE报错问题大家应该是能知道关于VC6++是为什么无法使用动态数组,这里是因为VC6++用的是上个世纪的C标准——C89,C89里面是不支持这个玩意的,而且VC6++现在基本不支持新的C标准——C99和C11,也就是说这个局限性太大。
那么为什么微软会采取这种落后形式?可能是因为没有利润,毕竟对商家来说统一采取新标准意味着一个投资,没必要做徒劳的事情。
好了,以上就是今天的问题,如果你感兴趣可以点赞并且关注哟!
有一说一,半夜查原因真的头秃