| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 583 人关注过本帖
标题:今天回答人问题的时候发现个有意思的问题 可执行代码中随时定义变量问题。 ...
只看楼主 加入收藏
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
结帖率:100%
收藏
 问题点数:0 回复次数:9 
今天回答人问题的时候发现个有意思的问题 可执行代码中随时定义变量问题。。一起分享研究下
程序代码:
#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的也会出现这样的错误
搜索更多相关主题的帖子: color 
2012-03-16 13:36
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
......

总有那身价贱的人给作业贴回复完整的代码
2012-03-16 13:43
独裁者
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2012-3-16
收藏
得分:0 
回复 楼主 C_596322153
同感啊,就为这破事我也纠结了很久才明白

独裁统治一切
2012-03-16 14:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
门户观念挺重的嘛

授人以渔,不授人以鱼。
2012-03-16 19:49
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
收藏
得分:0 
呵呵 版主啥叫门户观念啊  
2012-03-16 20:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
语言是让人们拿来用的,不是让你受方言局限的。有好的特性不用,要死守K&R,那叫食古不化。世界上本来就没有什么正宗C,却总见人说什么啥啥是C++不是C,宗教信徒都没那么虔诚。即使你的代码严格遵守变量声明在前,那就算是正宗的C门徒了么,不是这样的。现在各门语言都是在尽量吸纳其他语言的良好特性,不断发展,关键是那些特性你是否觉得好,而不是他是否“正宗”。

授人以渔,不授人以鱼。
2012-03-16 20:36
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
以下是引用TonyDeng在2012-3-16 20:36:18的发言:

语言是让人们拿来用的,不是让你受方言局限的。有好的特性不用,要死守K&R,那叫食古不化。世界上本来就没有什么正宗C,却总见人说什么啥啥是C++不是C,宗教信徒都没那么虔诚。即使你的代码严格遵守变量声明在前,那就算是正宗的C门徒了么,不是这样的。现在各门语言都是在尽量吸纳其他语言的良好特性,不断发展,关键是那些特性你是否觉得好,而不是他是否“正宗”。

叮叮叮
以下是引用TonyDeng在2012-3-16 20:36:18的发言:

语言是让人们拿来用的,不是让你受方言局限的。有好的特性不用,要死守K&R,那叫食古不化。世界上本来就没有什么正宗C,却总见人说什么啥啥是C++不是C,宗教信徒都没那么虔诚。即使你的代码严格遵守变量声明在前,那就算是正宗的C门徒了么,不是这样的。现在各门语言都是在尽量吸纳其他语言的良好特性,不断发展,关键是那些特性你是否觉得好,而不是他是否“正宗”。

编程之路定要走完……
2012-03-17 00:33
Frefreak
Rank: 2
等 级:论坛游民
帖 子:25
专家分:28
注 册:2011-7-4
收藏
得分:0 
混合声明是C99的新特性
2012-03-17 09:47
蓝幽
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2012-3-11
收藏
得分:0 
学习中......
2012-03-17 09:53
superliar
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2012-3-2
收藏
得分:0 
是诶,
2012-03-17 10:06
快速回复:今天回答人问题的时候发现个有意思的问题 可执行代码中随时定义变量问 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019177 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved