2011-03-27 71 views
0

的數組這是不特定於任何編程語言,問題是「尋找指定值的指數在正數的數組。聲明未知大小

現在的問題是,在下面的代碼可以聲明數組如何我都做到了。

{int n; 
read(n); 
int array[n]; 

......

,或者這是允許的?

{int n; array[n]; 
read(n) 

我在想第一個是正確的。

在此先感謝。

+2

數組聲明的方式取決於您使用的語言。如果你正在編寫僞代碼,你可以自己決定,只要它傳達了意圖和期望的結果。該數組可以被聲明爲'array = []','int [] array = new int []','int array []','array = array()','array = {}'等等。您必須事先聲明數組的大小,並在需要時用某些語言擴展數組。 – 2011-03-27 08:21:05

+0

謝謝,這很有幫助。 – 2011-03-27 08:24:08

+0

@Aleksi:由於問題是如何聲明一個未知大小的數組(也就是「不特定於任何編程語言」 - 又名僞代碼),我認爲您的評論是值得回答的。 – 2011-03-27 08:25:45

回答

1

就語法而言 - 這當然會依賴於編程語言。但是,假設編程語言靜態地或多或少地行爲並將數組視爲內存中的靜態分配塊(而不是向量等)等,則第一個選項必須是正確的,因爲只有在讀取了n之後才能分配靜態數組。

1

當然,第一個是正確的。在第二個聲明數組時,n尚未設置。所以這是不正確的。

0

通常在創建數組時,您需要事先知道大小。您是否知道編譯時或運行時的值可能取決於您的語言/項目要求,但在決定創建該大小的數組之前必須知道它的值。 (即第一種解決方案是正確的)

2

從評論轉換由Merlyn Morgan-Graham

所建議的聲明數組取決於你用什麼語言的方法。如果你正在編寫僞代碼,你可以自己決定,只要它傳達了意圖和期望的結果。

該陣列可以被聲明爲array = []int[] array = new int[]int array[]array = array(),'array = {}`等。在一些語言中,你必須事先聲明數組的大小,並且在一些語言陣列需要時擴大