我的行如下:
int player = 1, i, choice;
我的问题是,分配给我的是什么以及分配给选择的是什么?我总是被告知无法将变量分配给多个值。
答案 0 :(得分:4)
该代码相当于说
int player = 1;
int i;
int choice;
您不将1
,i
和choice
分配到整数变量player
。
答案 1 :(得分:3)
在此任何地方都没有分配任何内容 - 它正在进行初始化而不是分配。
player
显然已初始化为1。
如果此定义位于命名空间范围内,因此i
和choice
具有静态存储持续时间,则它们将被初始化为零。
如果此定义对于函数是本地的,则i
和choice
将被默认初始化,(int
}表示它们没有给出可预测的值
如果此定义位于类中,则i
和choice
可以由构造函数初始化。编译器生成的构造函数将默认初始化它们。
答案 2 :(得分:1)
他们(i
和choice
)有未指定的值。真的,它们几乎可以是任何价值。除非您明确地将它们设置为值,否则它们会被赋予一些“垃圾”值(通常是已经分配给它们的内存位置中的任何值)。
您未多次分配到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(但不指定任何符号)