19、高级语言中的常量与变量深入解析

高级语言中的常量与变量深入解析

1. 复合数据类型常量

许多语言除了支持字符串常量外,还支持其他复合常量类型,如数组、结构体/记录和集合等。这些常量通常用于在程序执行前静态初始化变量。

1.1 C/C++ 中的数组常量

在 C/C++ 中,我们可以使用如下代码初始化一个数组:

static int arrayOfInts[8] = {1,2,3,4,5,6,7,8};

需要注意的是, arrayOfInts 本身不是常量,真正的数组常量是 {1,2,3,4,5,6,7,8} 。在可执行文件中,若 arrayOfInts 是静态对象,大多数 C 编译器会直接将这八个整数值覆盖到与 arrayOfInts 关联的地址上,不会额外消耗空间来存储常量数据。例如,GCC 为该变量生成的代码如下:

LC0:          // LC0 是与 arrayOfInts 关联的内部标签
    .long       1
    .long       2
    .long       3
    .long       4
    .long       5
    .long       6
    .long       7
    .long       8

然而,如果初始化的变量不是静态分配的对象,情况就不同了。例如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值