如何使用C ++在一行中声明和定义多个variables?
我总是尽pipe如果我宣布这三个variables,他们都将有价值0
int column, row, index = 0;
但是我发现只有指数等于零,其他的都是844553&2423445这样的垃圾。
我怎样才能将所有这些variables初始化为零而无需在新行上声明每个variables?
int column = 0, row = 0, index = 0;
当你声明:
int column, row, index = 0;
只有索引被设置为零。
但是,您可以执行以下操作:
int column, row, index; column = index = row = 0;
但个人而言,我更喜欢以下的指出。
在我看来,这是一个更可读的forms。
int column = 0, row = 0, index = 0;
要么
int column = 0; int row = 0; int index = 0;
正如@Josh所说,正确的答案是:
int column = 0, row = 0, index = 0;
你需要用指针来注意同样的事情。 这个:
int* a, b, c;
相当于:
int *a; int b; int c;
如果每行声明一个variables/对象,不仅可以解决这个问题,而且可以使代码更清晰,并且可以防止在声明指针时出现愚蠢的错误。
要直接回答你的问题,你必须明确地初始化每个variables为0。 int a = 0, b = 0, c = 0;
。
int column(0), row(0), index(0);
请注意,这个表单也可以使用自定义types,特别是当它们的构造函数有多个参数时。
可能的方法:
- 用零初始化所有局部variables。
- 有一个数组,
memset
或{0}
数组。 - 使其成为全局或静态的。
- 把它们放在
struct
和memset
或者有一个构造函数将它们初始化为零。
当你声明一个variables而没有初始化variables时,将从内存中select一个随机数并将variables初始化为该值。