| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 415 人关注过本帖
标题:const 创建的常量为什么不能用来指定数组大小?
取消只看楼主 加入收藏
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
结帖率:95.24%
收藏
已结贴  问题点数:20 回复次数:3 
const 创建的常量为什么不能用来指定数组大小?
书中说的无效不明白为什么,用下面代码试也没出现什么问题,从在网上查的结果只知道const 和 #define有区别,也没从区别中看出为什么无效? 求指教
书本内容:(c primer plus 第十六章C预处理和C库 449页)
        #define LIMIT 20
        const int LIM = 5;
    static int datal[LIMIT];        //合法
    static int data2[LIM];          //无效
    const int LIM2 = 2 * LIMIT;     //合法
    const int LIM3 = 2 * LIM;       //无效


程序代码:
#include <stdio.h>
#define LIMIT 20

int main(void)
{
    const int LIM = 5;
    static int datal[LIMIT];
    static int data2[LIM];
    const int LIM2 = 2 * LIMIT;
    const int LIM3 = 2 * LIM;
    printf("LIM2 = %d    LIM3 = %d\n", LIM2, LIM3);

    for (int i = 0; i < LIM; i++){
        data2[i] = i + 2;
        printf("data2[%d] = %d\n", i, data2[i]);
    }

    return 0;
}
/*
VC2013运行结果:
---------------------
LIM2 = 40       LIM3 = 10
data2[0] = 2
data2[1] = 3
data2[2] = 4
data2[3] = 5
data2[4] = 6
请按任意键继续. . .
---------------------
*/
搜索更多相关主题的帖子: color 网上 
2015-03-25 18:19
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 2楼 TonyDeng
也就是说现在这样做是没问题的,书上写的是以前的情况。
看了一下书是2005年第1版,确实有点旧,先不管了,继续往下看,还有二章就看完了。

人有多懒,编程就有多难。
2015-03-25 19:19
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 4楼 TonyDeng
懂了,谢谢指教

人有多懒,编程就有多难。
2015-03-25 22:42
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
回复 5楼 孤独的守候
完全零基础,很多书看不懂。先把这本看完吧。我可能是有时太纠结了,其实很多问题是要慢慢积累的

人有多懒,编程就有多难。
2015-03-25 22:47
快速回复:const 创建的常量为什么不能用来指定数组大小?
数据加载中...
 
   



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

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