我在C ++源代码中看到了类似下面的代码:
size_t s1, s2 = sizeof(int), s3;
这是什么意思? 抱歉天真的问题。
答案 0 :(得分:7)
它是多重声明(可以说是糟糕的风格)等同于:
size_t s1;
size_t s2 = sizeof(int);
size_t s3;
答案 1 :(得分:0)
c ++中的逗号可以作为分隔符或运算符工作。
作为分隔符,它可以是:
将声明应用于以下所有表达式:
type a, b = 5, *c;
相当于:
type a;
type b = 5;
type *c;
或分隔应该组合在一起的元素:
int ray [] = {1,2,3,4};
作为运算符,逗号是一个二元运算符,它计算第一个操作数并丢弃结果,然后计算第二个操作数并返回该值(并键入)。
int a=1, b=2, c=3;
int i = (a += 2, c+1, a + b); // a = 3, a + b = 5 --> i = 5
//Here, c + 1 is evaluated to 3+1 = 4, but the result remains unused
此处,每个操作数连续评估,最终操作(a + b)
变为i
的值
顺便说一句sizeof(x)
是一个返回变量,对象x或类型(在这种情况下为int
)的字节大小的函数。
应该注意的是,当sizeof(ptr)
使用指针参数时,它只返回指针的大小而不是目标的大小。