在声明数组时,我们可以在标识符的任何一侧使用方括号,但在以下情况下:
int[] k,i;
和
int k[],i;
将以两种不同的方式来考虑它。那是第一个创建两个数组k和i。第二个创建一个数组k和一个普通变量i。这是什么行为?
编辑: 在Java中,通常我们更喜欢第一类声明。但是在这种情况下,我们无法在单个语句中创建数组和原始变量。
我的 猜测 如下:
该声明int[] k
更具逻辑性,因为它声明k
为的 数组int
。因此,它是Java中的首选(?)样式。
int k[]
另一方面,是用C的方式声明此数组(K&R在声明语法时使用了不同的哲学–他们希望声明模仿对变量的 访问
)并简化C程序员的过渡,这种语法也是允许-没有伤害。
现在,在上面的语句中,您已经链接了两个声明。在第一种情况下,两个变量都使用相同的类型声明-
这显然是int[]
。但是,在第二个代码中,此行为将是违反直觉的(并且也不同于C的行为),因此具有其他语义。
请记住,这纯粹是猜测。
问题内容: 我在一个开始从事的项目中遇到了这段代码。原始开发人员不再可用,我对此一无所知: 产生值为。这是如何运作的? 什么是运算符? 什么是运算符? 什么是运算符? 什么是运算符? 问题答案: 什么是运算符? 那是两个运算符,一个是赋值运算符,一个是一元加号,它什么都不做。 您是否输入错了并表示compund赋值运算符? 什么是运算符? 还有两个运算符,一个为后递增,一个为加法(根据最大划分规则
问题内容: 当我阅读docker / distribution源代码的副本时,我发现有声明的变量使我很困惑。 代码是: 我不知道声明是什么意思,希望能得到一些帮助。 问题答案: 从常见问题解答: 您可以通过尝试分配,要求编译器检查类型T是否实现了接口I: 在这种情况下,空白标识符_代表此处不需要的变量名(从而防止出现“已声明但未使用”错误)。 规格中的更一般性: 空白标识符提供了一种忽略分配中右侧
描述 (Description) java.lang.reflect.Field.setInt(Object obj, int value)方法将字段的值设置为指定对象上的int。 声明 (Declaration) 以下是java.lang.reflect.Field.setInt(Object obj, int value)方法的声明。 public void setInt(Object obj
问题内容: 哪个更正确?Java的结果为12或C =13。或者,如果不是正确性,请详细说明。 问题答案: 没有比这更正确的了。它实际上是未定义的,称为序列点错误。 http://en.wikipedia.org/wiki/Sequence_point
描述 (Description) java.lang.reflect.Array.setInt(Object array, int index, int value)方法将指定数组对象的索引组件的值设置为指定的int值。 声明 (Declaration) 以下是java.lang.reflect.Array.setInt(Object array, int index, int value)方法的
问题内容: 我今天发现了一件奇怪的事情,想知道是否有人可以阐明其中的区别? 运行完每个循环后,没有改变,但是在每个元素中添加了一个。我实际上使用该版本在循环内写入初始化的NumPy数组。 问题答案: 不同之处在于,一个修改数据结构本身(就地操作),而另一个仅 重新分配 变量。 仅出于完整性考虑: 是 不是总是 做就地操作,有(至少)三种例外情况: 如果 没有实现 的则方法的声明仅仅是一个速记。如果