C ++基本整数混淆

时间:2013-08-23 14:08:10

标签: c++ variables

我的行如下:

   int player = 1, i, choice;

我的问题是,分配给我的是什么以及分配给选择的是什么?我总是被告知无法将变量分配给多个值。

6 个答案:

答案 0 :(得分:4)

该代码相当于说

int player = 1;
int i;
int choice;

1ichoice分配到整数变量player

答案 1 :(得分:3)

在此任何地方都没有分配任何内容 - 它正在进行初始化而不是分配。

player显然已初始化为1。

如果此定义位于命名空间范围内,因此ichoice具有静态存储持续时间,则它们将被初始化为零。

如果此定义对于函数是本地的,则ichoice将被默认初始化,(int}表示它们没有给出可预测的值

如果此定义位于类中,则ichoice可以由构造函数初始化。编译器生成的构造函数将默认初始化它们。

答案 2 :(得分:1)

他们(ichoice)有未指定的值。真的,它们几乎可以是任何价值。除非您明确地将它们设置为值,否则它们会被赋予一些“垃圾”值(通常是已经分配给它们的内存位置中的任何值)。

您未多次分配到player。您正在创建3个变量,并将1分配给player。这和你写的一样:

int player = 1;
int i;
int choice;

答案 3 :(得分:1)

将此视为:

int player = 1;
int i;
int choice;

在c ++中,您可以在同一行声明多个相同的数据类型,例如

char c1, c2, c3;

也可以接受在声明中给出其中一个值,就像你的行正在做的那样。正如simonc所说,i或者选择都没有价值。

答案 4 :(得分:1)

你有什么定义&初始化,定义,定义;

int player = 1;
int i;// = most probably 'random' trash from heap/stack memory
int choice;// = most probably 'random' trash from heap/stack memory

答案 5 :(得分:0)

我和选择没有定义。你要说的是: 我想将播放器声明为int并将其指定为1然后是序列中断符号(,),表示类型说明符引用了下一个序列。也意味着将i和选择声明为int(但不指定任何符号)