VC6是怎么了

来源:互联网 发布:负责淘宝钻展投放的人 编辑:程序博客网 时间:2024/04/30 13:22


这样写一段代码:

#include <stdio.h>#include <stdlib.h>#define DataType int #define N 10/*插入排序算法*///函数声明void InsertSort(DataType *a,int n);//直接插入排序void Print(DataType *a,int n);int main(){DataType a[N] = {10,80,2,6,9,4,100,67,34,99};DataType b[N] = {10,80,2,6,9,4,100,67,34,99};InsertSort(a,N);Print(a,N);return  0;}//函数实现void InsertSort(DataType *a,int n){DataType x;//哨兵for(int i=1;i<n;i++){if(a[i] < a[i-1]){//因为i-1之前已排好序,从小到大x = a[i];a[i] = a[i-1];//移位,第i-1移到i位上int j=0;for(j = i-2;x < a[j];j--){a[j+1] = a[j];//后移}//fora[j+1] = x;//插入}//if}//for}void Print(DataType *a,int n){for(int i=0;i<n;i++){printf("%d  ",a[i]);}printf("\n");}

就一个插入排序,然后在VC6中运行:


然后我去掉b的声明:

int main(){DataType a[N] = {10,80,2,6,9,4,100,67,34,99};//DataType b[N] = {10,80,2,6,9,4,100,67,34,99};InsertSort(a,N);Print(a,N);return  0;}

再次运行:正常了


然后在CFree5里运行都是正常的:



现在继续修改代码,把b打印出来:

int main(){DataType a[N] = {10,80,2,6,9,4,100,67,34,99};DataType b[N] = {10,80,2,6,9,4,100,67,34,99};InsertSort(a,N);Print(a,N);Print(b,N);return  0;}

运行结果:


发现b居然被修改了。。。。

是我的VC6有毒吧。。。


1 0