【发布时间】:2016-01-14 14:05:01
【问题描述】:
在我的一项作业中,我看到使用了这条线:
int index = -1, k;
我不确定当有一个变量的条目时会发生什么。 当它有两个条目时,变量“索引”到底是什么?
【问题讨论】:
-
作业?拿回你的钱。这是一种非常糟糕的编码风格,你的导师应该更清楚。
-
@Rhymoid 一些作业故意使用 bad style,这样你就可以接受训练,理解 C 语言中看起来怪异的结构。
-
这不是模棱两可吗?编译器如何知道这里的逗号没有被用作逗号运算符。毕竟,
index被分配给表达式的值,并且表达式 -1,k 是有效的......除非可能没有定义 k。我想知道如果我这样做会发生什么:int k=3; int index=-1,k;。那么它应该将 3 分配给索引吗? -
@mcleod_ideafix 定义不是赋值。试试你的例子,它只会作为重新声明而被拒绝。
-
但是初始化是,并且初始化的右侧可以是任何有效的表达式,包括带有逗号运算符的表达式。当然我试过了,正如你所说,它不能编译,但如果我写:
int k=3; int index=(-1,k);它可以工作