You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++多变量整数声明的工作原理及number(0)初始化疑问

C++变量声明行的疑问解答

先看你贴的代码:

int n, Petya, Vasya, Tonya, number(0);
cin >> n;
while (n--)
{
    cin >> Petya >> Vasya >> Tonya;
    if (Petya + Vasya + Tonya >= 2)
    {
        number += 1;
    }
}

1. int n, Petya, Vasya, Tonya, number(0);这一行的工作方式

这是C++里一次性声明多个同类型变量的简化写法,和分开写下面五行完全等价:

int n;
int Petya;
int Vasya;
int Tonya;
int number(0);
  • 前四个变量n、Petya、Vasya、Tonya是默认初始化:如果这段代码在函数内部(比如main函数),它们的初始值是随机的“垃圾值”,不过后面会通过cin赋值覆盖,所以不影响;要是全局变量的话会自动初始化为0,但这里显然是局部场景。
  • 最后一个number用(0)做了显式初始化,和前几个的初始化逻辑不一样。

2. 声明末尾的number(0)有什么作用

这是C++对内置类型变量的显式初始化写法(参考了类的构造函数初始化方式),核心就是把number的初始值设为0。
必须这么做的原因是:后面代码要用number += 1统计满足条件的次数,如果number不初始化,它一开始是随机垃圾值,累加出来的结果肯定错误。给它初始化为0,才能保证计数从0开始,每满足一次条件加1,最终得到正确的统计结果。

内容的提问来源于stack exchange,提问作者jsampn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:55:07