java - 数组上的预增量如何工作

标签 java arrays

++frequency[2] ;

我认为未初始化的数组的默认值是0。 Imo,这意味着评估 频率[2] 为零,然后加 1 并将其分配给索引 2。 请任何人解释一下如何获得此代码的输出。这件事让我很头疼。

 public static void main(String ars[])
{

    int responses[] = {1,2,4,4};
   int freq[] = new int[5];
    for(int answer = 1;answer < responses.length;answer++){
        ++freq[responses[answer]];
    }
    for ( int rating = 1; rating < freq.length; rating++ )
         System.out.printf( "%6d%10d\n", rating, freq[ rating ] );

//输出

     1         0
     2         1
     3         0
     4         2

最佳答案

是的,你是。

int[] frequency = new int[3];
System.out.println(frequency[2]);
System.out.println(++frequency[2]);
System.out.println(frequency[2]);

打印:

0
1
1

编辑:正如潜伏者在这里所说的How does this pre increment on arrays work ,这个答案对 Java 有效,但可能不适用于其他语言。

关于java - 数组上的预增量如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100474/

相关文章:

java - 离线/在线数据同步策略

java - 将文件中的输入解析为 ADT ArrayList

java - Android java 如何让动画图像向左移动并停留在那里?

java - 无法比较两个日期 java,使用 SimpleDateFormat "dd/MM/YYYY hh:mm:ss a"将字符串转换为日期时转换无效

objective-c - 使用对象之间的公共(public)键值对将 NSArray 拆分为较小的键值编码数组

java - 如何比较java中的2条语句

javascript - 为什么我不能在 JavaScript 中设置数组元素(字符串)的属性?

ios - AVAudioCompressedBuffer 到 UInt8 数组,反之亦然

java - 在哪里锁定以进行实体行的原子获取或创建

javascript - 如何在 Netsuite 'N/search Module' 中使用 for 循环获取第一组千条记录和下一组千条记录