[問題] 請教一個基本的問題
1. public class X {
2. public static void main (string []args) {
3. int [] a =new int [1] ;
4. modify (a) ;
5. System.out.println (a[0]) ;
6. }
7. public static void modify (int [] a ) {
8. a [0]++ ;
9. }
10. }
ANS: a[0]=1
請問為什麼a[0]的值可以加到1呢?
是說陣列不用使用return等方法就可以改變數值嗎?
=======================================================
對照另一題:
1. public class X {
2. private static int a ;
3. public static void main (string []args) {
4. modify (a) ;
5. System.out.println (a) ;
6. }
7. public static void modify (int a ) {
8. a ++ ;
9. }
10. }
ANS: a=0
這我可以理解,因為兩個a值參照的是不同物件。
只是疑惑為什麼上一題的array沒有將結果指定回就可以保留運算結果。
謝謝大家。 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.172.8
→
11/30 02:23, , 1F
11/30 02:23, 1F
→
11/30 02:50, , 2F
11/30 02:50, 2F
→
11/30 03:12, , 3F
11/30 03:12, 3F
→
11/30 09:00, , 4F
11/30 09:00, 4F
→
11/30 11:49, , 5F
11/30 11:49, 5F
→
11/30 12:06, , 6F
11/30 12:06, 6F
→
11/30 12:40, , 7F
11/30 12:40, 7F
→
12/01 00:42, , 8F
12/01 00:42, 8F
→
12/01 00:43, , 9F
12/01 00:43, 9F
→
12/01 00:45, , 10F
12/01 00:45, 10F
討論串 (同標題文章)