数组小问题,快者加分

来源:百度知道 编辑:UC知道 时间:2024/06/27 23:06:38
如果定义一个数组(在dev c++环境下编译,非VC++)
1.如果int a[n];
那么n值不同,时间是否会不同?(运行时)
如果不同,又会差多少(请精确到毫秒)
2.int n;
cin>>n;
int a[n+1];
可以这么定义数组?类似动态内存分配?
回答者请大致说明思路,先发上来,最后再酌情补上程序.
快者加分!

1.对于定义一个数组int a[n];来说,n值的不同是不会影响到程序运行时间的。因为变量定义实际上是在编译过程中完成的,与动态分配内存不同,长度的差异并不会引起程序指令的增加。

2.这样的定义是不可以的,原因是数组的长度也是在编译的时候就必须确定的。如果要使用变长数组,还是要使用动态分配内存的方式,才可以在运行时实现变长数组的功能。
C++中可以如下实现
cout <<"请输入数据元数的个数:";
int n;
cin >> n;
int *arry= new int[n];
此后的arry可以和数组一样使用。

毫秒恐怕是衡量不出来结果的

你把n赋不能值
并分别执行 几万次 几百万次...或者更多
才能看出细微的差别来