今天回答人问题的时候发现个有意思的问题 可执行代码中随时定义变量问题。。一起分享研究下
程序代码:
#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的也会出现这样的错误