C++声明中逗号分隔符的作用及变量赋值规则问询
含逗号的变量声明:变量与值的映射规则及赋值结果说明
看起来你没贴出声明1和声明2的具体代码,我就结合你提到的long int d[100]已初始化的前提,用两种最常见的含逗号声明场景来解释:
场景1:同类型变量的批量声明(声明1示例)
比如声明为:
int a, b = 42;
这里的逗号是同类型变量的分隔符,作用是一次性声明多个相同类型的变量:
- 变量
a:属于int类型,但没有被显式赋值。如果是全局/静态变量,会被默认初始化为0;如果是局部变量,会保留内存中的垃圾值(未定义状态)。 - 变量
b:被显式赋值为42,最终值就是42。
场景2:结合数组的变量声明(声明2示例)
比如声明为:
long int x = d[10], y = d[90];
同样,逗号用来分隔两个long int类型的变量,每个变量的赋值独立进行:
- 变量
x:会被赋值为数组d中索引为10的元素的已有值(因为d已提前初始化,直接取对应位置的结果即可)。 - 变量
y:会被赋值为数组d中索引为90的元素的已有值。
额外注意:别和逗号表达式混淆
如果声明里的赋值右侧是逗号表达式(比如int c = (10, 20);),这时候逗号是逗号运算符,会先执行逗号左侧的表达式(这里是10,无实际作用),再取右侧表达式的结果作为赋值值,所以c最终会被赋值为20。但这种情况和单纯用逗号分隔变量的声明是两回事哦。
内容的提问来源于stack exchange,提问作者Dami
相关产品推荐
相关产品推荐

