c語言二維陣列

2023-02-04 16:00:34 字數 594 閱讀 3670

1樓:

因為你的s是一個二維陣列。

如果你的s是一維陣列,像s[20]這樣,那麼在gets時不需要加[0]。

你定義的s是個二維陣列,並且是char型別,所以每一行存放一個字串。

s[n]代表第n-1行,而gets時的引數需要是一個字串指標,或者字串陣列名,所以這裡必須要寫作gets(s[n]),其中0 <= n < 20

2樓:

我明白你的意思了,這個問題確實有點奇怪,我懷疑是編譯器的問題。你到dev-c++或者vc2008下試試吧

gets()函式的原型就是gets(s),s為定義的字元陣列名,字元指標或字串變數

在這個程式中,s[0]是一個字串指標,為定義的char s[20][20]字串陣列中的第一個字串.gets(s[0])表示從鍵盤接收字串輸入(直到遇到換行符)賦給s[0]

3樓:網路學習師

gets()是個輸入函式,要想往記憶體輸入資料必須要有空間,如果不寫s[0]就沒有輸入的地方

4樓:匿名使用者

不寫s[0]無法賦值????什麼意思??

c語言中二維陣列的定義問題C語言中二維陣列的定義問題

正確寫法如下 char fd jgf1 maxitemlen 1 說明 把null去掉 1.二維陣列的第一個維度預設是 舉個例子 int tar 2 因為大括號中有4個元素,而且第二個維度是2,所以就可以計算出來第一維度是2.所以是可以預設的。2.你的這個例子中,第一維預設的應該是 7 8 1 ma...

c語言for迴圈與二維陣列的問題

首先你所給的程式就存在錯誤,這是我幫你修改後的程式 include stdio.h int main i,k,t for i 0 i 3 i for k i i k 4 k if a i i for i 0 i 4 i printf d,a 0 i return 0 執行後的結果是6,4,3,2.第...

c語言中的二維陣列a可以表述為a

這個表述是有問題的,a 1 j 沒有規定首地址,a 1 已經表示a 1地址中的資料了,明顯與陣列概念不合。a a j 裡面陣列名稱和一個維度的陣列的個數表示重疊了,所以我換一種方式來表示 a y x 為了便於理解,假定y 3,x 2。在陣列中的資料有y行,x列 也就是3行,2列。假定第一行資料為 第...