c語言的陣列的中括號中數字能否省略?什麼時候可以省略

2021-03-08 09:19:43 字數 1201 閱讀 8167

1樓:匿名使用者

在定義陣列時同時初始化,括號中數字可省略,如:int a=;這個陣列大小是5,範圍是a[0]到a[4],但是如果你希望定義一個長度是10的陣列,但只初始化前5個資料,這時候必須帶上數字,如:int a[10]=;這時候a陣列一共有10個數字,前5個是1到5,後5個是0

或者二維陣列,可以省略行數,但不可以省略列數,如int a[4]=,,};這詩系統自動預設行數是3

還有就是形參中,可以省略一維陣列的長度或者二維陣列的行數,如:void fun(int a,int b[4])這個函式中第一個引數是一維陣列,只要實參傳來一個一維陣列即可接收到,不需要長度完全一樣,同理,第二個引數也是,只要傳來一個列數為4的二維陣列即可

大概就以上3中情況吧希望對你有幫助

2樓:匿名使用者

int a=; 可以在定義的時候給出初始值。可省略。

int b[5]=; 同上,但是第二個不能省略。

a=3; 這樣做就不對了,裡面沒有定位,不能省略。

b[2]=2; 同上,不能省略。

a[x]=3;這樣做也對,但是要保證變數x的值正確。c不會自動給你查越界。你自己要小心。

3樓:倒黴熊

可以省略

例如:int a = ;

編譯器會根據後面的元素的個數來確定陣列的範圍。

在引數傳遞中,可以寫成 void fun(int a)這種形式,因為引數傳遞中已經退化為指標了,元素的個數需要其他引數確定。

要大體說什麼時候可以省略,那就是你能夠保證編譯器能夠知道你陣列的元素個數才能省略。

4樓:匿名使用者

所有元素都已羅列出來,可以省略行標:

如 int a[4][3]=;

可以省略為int a[3]=;

5樓:

c99標準以前:

宣告時可以省略: extern int myarray;

定義時包含初始化可以省略:int myarray=;//根據初始化陣列元素的多少而預設大小

形參中的陣列不需要數字

c99標準:

可以用表示式確定陣列大小: int myarray[*];//但只能是區域性變數,而且goto語句將不能使用

6樓:匿名使用者

作為參考變數的時候可以省略,或者對於陣列同時宣告和定義的時候也可以省略

c語言結構體中的char陣列怎麼賦值

常用兩種措施 在宣告結構體變數時初始化,如 include stdafx.h if the vc 6.0,with this line.include stdio.h struct stu int main void 這樣初始化printf d s n s.x,s.name return 0 向陣列...

c 中string陣列的問題,C 中string陣列的問題

string並不是c 的基本資料型別。它是標準庫裡宣告的一個字串類。所以樓主的答案是 可以。string str 10 定義一個字串陣列str顯示的是 i love you 還可以這樣定義字串陣列 string name 5 可以賦值啊。include include using namespace...

關於c語言陣列的運算,關於C語言陣列的運算。

首先你可以進行單步測試自己看看能不能學習到過程 程式設計師以後寫程式排錯 要學會自己單步測試找問題 過程很簡單 你定義了一個1維陣列 陣列長度為10 從a 0 a 9 進行for迴圈計算 i 9 a 9 10 9 1 同理 a8 2 a5 5 a2 8 所以輸出 a2,a5,a8 分別就是852 希...