C++多类型赋值

C++ multiple type assignment

本文关键字:赋值 多类型 C++      更新时间:2024-09-22

我对C++不太熟悉,对多重分配有一些问题

int a = 0, b = 0;

工作

int i;
double d;
char c;
c = i = d = 42;

同样有效但为什么这不起作用。

int a = 4, float b = 4.5, bool ab = TRUE;

这与允许的语法有关。从非常高级的角度来看,格式大致为:

type varName [ = expr ][, varName [ = expr ] ]?;

在完全不允许在中流引入另一种类型的情况下。

在实践中,每行声明多个变量可能会导致很多歧义和混乱。

快速测验:a的初始值是多少?b是什么类型的?

int* a, b = 0;

如果您猜测a是一个空指针,而bint*,那么您就错了。这就是为什么通常最好把它拼写成长格式,这样就有了绝对的清晰度:

int* a;
int b = 0;