关于C/C++的编辑器VC6++无法使用动态数组问题

在这里插入图片描述(查了半天的原因的我,一直冷静不下来)
在同班同学大部分都用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++:
在这里插入图片描述
关于报错的各种错误代码对应的中文解释:

  1. 不能使用变量为数组下标

在这里插入图片描述

  1. 长度不能为0(这个如果数组没有分配成功是会随着上面一块报出来)

在这里插入图片描述

  1. 就算数组不给变量,也会报错

在这里插入图片描述
通过看以上的IDE报错问题大家应该是能知道关于VC6++是为什么无法使用动态数组,这里是因为VC6++用的是上个世纪的C标准——C89,C89里面是不支持这个玩意的,而且VC6++现在基本不支持新的C标准——C99C11,也就是说这个局限性太大。
那么为什么微软会采取这种落后形式?可能是因为没有利润,毕竟对商家来说统一采取新标准意味着一个投资,没必要做徒劳的事情。
好了,以上就是今天的问题,如果你感兴趣可以点赞并且关注哟!
在这里插入图片描述
有一说一,半夜查原因真的头秃

发布了22 篇原创文章 · 获赞 159 · 访问量 9518

猜你喜欢

转载自blog.csdn.net/weixin_45677047/article/details/104621220