當前位置:首頁 » 編程語言 » c語言怎麼給二維數組

c語言怎麼給二維數組

發布時間: 2023-03-18 17:24:30

『壹』 c語言函數傳遞二維數組

C語言如果給函數傳遞二維數組作為參數

先看一個傳遞二維數組的例子:

編譯

程序看著沒有任何問題,但是編譯器通不過,報錯在處理二維數組參數a的時候,類型不兼容。

C語言裡面對二維數組的存儲是按照一維數組來處理的,二維數組按照行展開的方式按順序存儲,例如在上面的例子中:
二維數組a的定義:

它等同於一維數值的定義:

因為他們的空間存儲分配一樣的。

所枝伍培以在利用二維數組作為參數傳遞時,必須指定二維數組的列數,否則函數無法勾畫出二維數組的猛唯組織形式。只有有了列長度,通過下標a[i][j]時才能得到正確的下標地址,即:

我們改一下上面的額foo函數定義:

編譯運行:

這下就正常了。

參數如上所列。

我們看到,函數的參數聲明改成了:

這個聲明的含義是:

不過此時還是需要指定二維數組的列長度,不然函數內部還是無法使用二維下標去訪問數組:

編譯:

原因同前面方法1一致,如果要訪問二維數組,必須指定列的長度,否則無法計算橘瞎出該元素的地址,a[i][j]=a [ (i-1)*COLNUM + j ],如果沒有COLNUM,那麼這個地址無法計算出來。從形參的聲明來說,a就是一個指針,指向一維數組的指針,而不是一個二維數組。

這里要注意的是指針的指針,和二維數組的差異;二維數組的地址是連續的,所有成員按順序排序;而指針的指針只要求指針地址連續,而不要求指針的指針地址連續。

然後作為實參傳遞時,也不能直接使用a傳遞,因為類型不匹配,必須定義新的變數p,然後把a的值賦給p,再傳遞給foo函數。

『貳』 c語言中 二維數組要怎麼輸入怎麼換行啊

scanf那行里的a[i][j]要寫成&a[i][j],輸入就正常的輸入就行了,其實scanf讀入數字的時候,數字可以用空格、回車或者TAB間隔,比如說一個2x2的數組,你輸入
10 11
12 13
或者輸入10 11 12 13都是可以的。

『叄』 如何用C語言列印出二維數組

假設需要列印的數組為int類型,數組名為Array,Dim1為數組的行,Dim2為數組的列。

inti,j;//臨時變數
for(i=0;i<Dim1;i++)//外層循環遍歷行
鏈余for(j=0;j<Dim2;j++)//內層循環遍歷列
{
printf("%d",Array[i][j]);//訪問數組元素並列印
}

『肆』 c語言二維數組怎麼用

我也不是高手,也是初學。正巧碰到這個問題感覺我還是能解決的。就隨手寫了下,回答下。大家共同進步哈。有不對的地方還要請各位真正的高手指正。

代碼在下面,復制到你的編輯器裡面看比較好,加了註解的。還有問題就再問哈。
---------------------------------------------------------------
public class d_array
{
public static void main(String[] args)
{
int[][] d_array = new int[8][8]; //定義一個8行8列的二維數組
int num = 1; //定義一個填充用的數備用
for (int i = 0 ; i < d_array.length ; i++)
for (int j = 0 ; j < d_array[i].length ; j++)
d_array[i][j] = num++;
//讓上面那個填充數自加並填充進數組

for (int p = 0 ; p < d_array.length ; p++)
{
System.out.println("數組第 "+(p+1)+" 行中的值為:"); //加一句說明是第幾行的,不要也可以。
for (int q = 0 ; q < d_array[p].length ; q++)
System.out.print(d_array[p][q]+"\t"); //加這個\t可以有效的分離開兩個數,排版好看
System.out.print("\n\n"); //換行,第一個用於一行之後換行,第二個用於一個空行,與下面那行隔開,排版好看的
}
//分行列印數組
int sum = 0; //一樣,定義一個合備用
for (int m = 0 ; m < d_array.length ; m++)
for (int n = 0 ; n < d_array[m].length ; n++)
sum = sum + d_array[m][n];
//分別將數組中的各個數加到這個合中去,最後得到的這個合就是數組中所有數的合了。
System.out.println("數組中的所有值得合為:"+sum); //列印結果
}
}

---------------------------------------------------------------

其實二維數組的操作秘訣就是兩個for循環套起來用,這樣就很簡單了。

熱點內容
動態規劃01背包演算法 發布:2024-11-05 22:17:40 瀏覽:846
nasm編譯器如何安裝 發布:2024-11-05 22:01:13 瀏覽:176
登錄密碼在微信的哪裡 發布:2024-11-05 22:00:29 瀏覽:735
c防止反編譯工具 發布:2024-11-05 21:56:14 瀏覽:243
安卓虛擬機怎麼用 發布:2024-11-05 21:52:48 瀏覽:340
php時間搜索 發布:2024-11-05 20:58:36 瀏覽:475
燕山大學編譯原理期末考試題 發布:2024-11-05 20:13:54 瀏覽:524
華為電腦出現臨時伺服器 發布:2024-11-05 20:05:08 瀏覽:405
斗戰神免費挖礦腳本 發布:2024-11-05 19:53:25 瀏覽:662
網吧伺服器分別是什麼 發布:2024-11-05 19:45:32 瀏覽:390