| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3656 人关注过本帖
标题:C99的变长数组意义何在?
只看楼主 加入收藏
li362490567
Rank: 1
等 级:新手上路
帖 子:89
专家分:8
注 册:2015-7-9
结帖率:0
收藏
 问题点数:0 回复次数:30 
C99的变长数组意义何在?
C99的变长数组,可以将维数用变量表示,不过变量最终还是要赋值的,跟用常量有啥区别?
另外,求高人详细的说下%g何时用,书上只说根据数值不同选择%f,%e 但仍然不懂啥意思,数值不同,具体多少?
搜索更多相关主题的帖子: 餐厅 
2015-08-12 18:02
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
可以指定大小啊 想用多大用多大

而且是在栈上分配对
2015-08-12 18:17
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
常量数组是由程序员决定其大小,变量数组由用户决定大小

一片落叶掉进了回忆的流年。
2015-08-12 18:42
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
所有的原因所有的为什么只有一个。。。楼主的代码量太少了
如果楼主为了搞清楚%g and %f or %e
写几行代码就可以搞清楚了,
宁愿问也不愿意自己动手实践!口可口可
good luck
2015-08-12 18:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你試試運行時輸入一個負數看結果如何?

授人以渔,不授人以鱼。
2015-08-12 20:02
实际应用
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:89
专家分:341
注 册:2015-5-30
收藏
得分:0 
%e 指数形式
%f 小数形式
%g 输出宽度哪个短用那个
2015-08-12 20:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
查查百度唄:

http://baike.baidu.com/view/209670.htm,內中有這麼一段
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

看清楚這些觀點是誰說的——C語言標准化委員會!

之前爭論VAL的時候,有人把它當寶一樣,好像gcc支持的就是天地正氣,微軟不支持就是頑固老舊。我當時看了它的使用法則和原理,就說不切實用,沒幾人聽得進去,到C11出臺,成為可選項了,那些人的聲音才小了一點。

[ 本帖最后由 TonyDeng 于 2015-8-12 20:21 编辑 ]

授人以渔,不授人以鱼。
2015-08-12 20:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
VLA的弊端和不切實際,放開棧溢出不談,光是把尺寸交給用戶這一點就已經很可怕,不用怎麼測試,想像一下敲入-1作為數組的尺寸時會怎樣,那可是位數全為1的數,數組尺寸容許多大的值,-1就有多大,32位機器無符號整數的最大值是32位全為1,你gcc有多大的棧去容納?發明這種東西還作標準用了。

還有那個可笑的main()函數必須返回整數,也是無稽之至,祗不過標準到如今都堅持而已。實際無聊就是無聊,不是因為權威這麼規定就神聖不可侵犯,VLA如此,main()的返回值也如此。

[ 本帖最后由 TonyDeng 于 2015-8-12 20:46 编辑 ]

授人以渔,不授人以鱼。
2015-08-12 20:42
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:0 
回复 8楼 TonyDeng
大小问题,是程序猿的职责吧,用户在程序之下,程序还是在程序猿手中。
C 相信程序猿,并不多加干涉。


莫问前尘有愧,但求今生无悔
2015-08-12 22:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用pycansi在2015-8-12 22:53:09的发言:

大小问题,是程序猿的职责吧,用户在程序之下,程序还是在程序猿手中。
C 相信程序猿,并不多加干涉。

运行时刻,数据并不由程序猿控制,对程序猿来说,那是未知的东西,他要控制,就必须有代码对运行时的数据进行合法性检查,并在超越限制的时候自动按某种规则裁剪(是否合理又是另一问题),这些多余代码所带来的繁琐和低效,远远抵消VLA所带来的便捷。

用最传统、最古老的堆申请内存,足够应付“变长数组”的需求,本来不需引入这一手段。无论是微软的C编译器,还是C++语言,都不采纳这一方案,可想而知。

[ 本帖最后由 TonyDeng 于 2015-8-12 23:11 编辑 ]

授人以渔,不授人以鱼。
2015-08-12 22:57
快速回复:C99的变长数组意义何在?
数据加载中...
 
   



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

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