如何使用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}数组。
  • 使其成为全局或静态的。
  • 把它们放在structmemset或者有一个构造函数将它们初始化为零。

当你声明一个variables而没有初始化variables时,将从内存中select一个随机数并将variables初始化为该值。