第一行照例本鴿子精咕咕咕。
寫這個博客的起因:
寫java作業習慣性定義了new int[105][105]的數組交上去並被打回重做。
老師:不允許出現固定數組你105是什麼鬼!
我內心os:????不是不允許變量聲明數組長度嗎(這個人沒聽課+C語言被強調多次記憶太深)。
先說結論:Java是可以變量聲明數組長度的。
C語言:
我們學習C語言的時候,都會被強調不能定義一個變量,再利用變量聲明數組。
ex:
int n;
scanf("%d",&n);
int a[n];
這樣是不允許的。包括C++。
C語言中的數組是在程序運行之前提前向系統申請了內存空間,沒有申請空間不允許讀寫。所以如果數組長度是變量,不能提前申請空間,所以不能用變量來設置動態數組。
但可以利用malloc函數來動態分配空間,實現數組的不定長聲明。
Java:
Java的數組是用new來聲明,相當於c++中的new,相當於c中的malloc,是動態分配內存空間的,所以可以用來設置不定長數組。
即:
import java.util.Scanner;
public class T{
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
int n;
n = cin.nextInt();
int[] a = new int[n];
}
}
或許有錯orz歡迎指出錯誤