今天回答人问题的时候发现个有意思的问题 可执行代码中随时定义变量问题。。一起分享研究下
程序代码:#include<stdio.h>
void main()
{
int n,m,temp; //注意变量定义位置
int a,b,k,u,y,*i[5];
printf("请输入5个数字:");
scanf("%d,%d,%d,%d,%d",&a,&b,&k,&u,&y);
i[0]=&a;
i[1]=&b;
i[2]=&k;
i[3]=&u;
i[4]=&y;
for(n=0;n<4;n++)
for(m=n+1;m<5;m++)
if(*i[n]<*i[m])
{temp=*i[n];*i[n]=*i[m];*i[m]=temp;}
printf("%d,%d,%d,%d,%d",a,b,k,u,y);
}这样编译C和C++都能通过
程序代码:#include<stdio.h>
void main()
{
int a,b,k,u,y,*i[5];
printf("请输入5个数字:");
scanf("%d,%d,%d,%d,%d",&a,&b,&k,&u,&y);
i[0]=&a;
i[1]=&b;
i[2]=&k;
i[3]=&u;
i[4]=&y;
int n,m,temp; //注意变量定义位置
for(n=0;n<4;n++)
for(m=n+1;m<5;m++)
if(*i[n]<*i[m])
{temp=*i[n];*i[n]=*i[m];*i[m]=temp;}
printf("%d,%d,%d,%d,%d",a,b,k,u,y);
}C++也就是.cpp可以通过 .c就会报错
来自于百度的一句话:在 ANSI C或者C++中,在可执行代码中随时定义变量是允许的,但是在K&R C中是不允许的,VS2008实现的C竟然是K&R C。注意这样的错误也体现在VS中要是用for (int i = 0; i++; i<10)同时你的文件名是.c的也会出现这样的错误









