您好,登錄后才能下訂單哦!
什么是C語言二維數組,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
數學中的行列矩陣,通常使用二維數組來描述,即用二維數組的第一維表示行,第二維表示列;生活中凡是能抽象為對象及對象的若干同類型屬性的問題,一般用二維數組來描述。
例如,若表示一個班級學生的語文、數學、外語、C語言等4門課的成績數據。該問題可把每個學生看成一個對象,用二維數組的第一維來表示,如果有50個學生,則可設定二維數組第一維的大小為50;成績可看成每個對象的屬性,且均可使用整型表示,可用二維數組的第二維來表示,每個對象(學生)含4個屬性(4門課程),故第二維大小可設為4。
再比如,某公司若統計某產品的某個月份的銷量數據,該問題可以把一周當成一個對象,一個月含4周,故4個對象,二維數組第一維可設為4;日銷售量可看成每個對象的屬性,可用二維數組的第二維表示,對象(每周)含有7個屬性(7天的日銷售量),故二維數組的第二維可設為7。
同一維數組一樣,既支持C89標準的二維靜態數組,又支持C99標準的二維動態數組或變長數組。某些C編譯器還沒更新到支持C99標準的語法,故可能在一些編譯器中變長數組會報錯。如無特殊說明,教程中所指二維數組,均默認為靜態數組。
靜態二維數組定義的一般格式為:
類型數組名[第一維大小][第二維大小];
其中,第一、二維的大小一般均為常量表達式。
例如:
inta[4][5];
定義了一個4行5列的int型二維數組a。
floatsc[3][4];
定義了一個3行4列的float型二維數組sc。
如下二維數組的定義形式均是錯誤的。
inta[][3];//錯誤。編譯器無法確定所需空間
inta[2][];//錯誤。缺少列下標,編譯器無法確定所需空間
動態數組例子如下(僅做了解)。
intn=2;
inta[n][3];//動態數組,正確的C99語法。但在某些編譯器中可能報錯
inta[2][n];//動態數組,正確的C99語法
定義時未初始化的數組,其數據元素的值一般為無意義的隨機值,如:
inta[2][3];//該數組的6個元素均為隨機值
可以把二維數組看成一個特殊的一維數組,它的每個元素又是一個一維數組。例如,定義一個表示3個學生4門課程成績的二維數組:
intsc[3][4];
定義了一個3行4列的二維數組sc,該二維數組可表示3個對象(學生),從這個角度看,該二維數組可以看成含3個對象(學生)的一維數組,3個對象(元素)分別為:sc[0]、sc[1]、sc[2],其中sc為該一維數組名。
每個對象(元素)sc[i]又是一個包含4個屬性(4門成績)的一維數組,4個屬性分別為:sc[i][0](語文)、sc[i][1](數學)、sc[i][2](外語)、sc[i][3](C語言)。每一行表示一個學生,每一列表示一門課程,形成如下所示的行列矩陣形式。
看完上述內容,你們掌握什么是C語言二維數組的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。