public static void update(int i , int[] dp){
dp[0]=i;
}
public static void main(String args[] ) throws IOException {
int[][] dp = new int[10][100001];
update(100,dp[0]);
System.out.println(dp[0][0]) // Showing 0 instead of 100
}
为什么dp
的值不会随着c ++的变化而改变,我尝试过使用static int[][] dp
在main之前声明它是全局的,
为什么它是不改变它的价值。
答案 0 :(得分:3)
这正在改变! 我通过NetBeans IDE7.4对此进行了测试,并显示了结果...
答案 1 :(得分:0)
您正在调用方法
update(100,dp[0]);
因此i
的值为100,因此该方法更改了数组的第100个元素的值。然后检查dp[0][0]
。
答案 2 :(得分:0)
尝试打印
System.out.println(dp[0][100]);
你将dp [0]传递给你的方法并将index作为100传递,因此你最终设置dp [0] [100]为i,即100。
尝试将更新方法调用为:
update(0,dp[0]);
但是这不会像在update方法中那样有效,你设置的值类似于我们传递的参数i为0。
答案 3 :(得分:0)
该值完美更新为100。我检查了日食。检查一下。