在c語言中什么是二維數(shù)組
在c語言中什么是二維數(shù)組
二維數(shù)組的定義
二維數(shù)組定義的一般形式是:
dataType arrayName[length1][length2];
其中,dataType 為數(shù)據(jù)類型,arrayName 為數(shù)組名,length1 為第一維下標的長度,length2 為第二維下標的長度。例如:
int a[3][4];
定義了一個3行4列的數(shù)組,共有3×4=12個元素,數(shù)組名為a,即:
a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]
在二維數(shù)組中,要定位一個元素,必須給出一維下標和二維下標,就像在一個平面中確定一個點,要知道x坐標和y坐標。例如,a[3][4] 表示a數(shù)組第3行第4列的元素。
二維數(shù)組在概念上是二維的,但在內(nèi)存中地址是連續(xù)的,也就是說存儲器單元是按一維線性排列的。那么,如何在一維存儲器中存放二維數(shù)組呢?有兩種方式:一種是按行排列, 即放完一行之后順次放入第二行。另一種是按列排列, 即放完一列之后再順次放入第二列。
在C語言中,二維數(shù)組是按行排列的。也就是先存放a[0]行,再存放a[1]行,最后存放a[2]行;每行中的四個元素也是依次存放。數(shù)組a為int類型,每個元素占用4個字節(jié),整個數(shù)組共占用4×(3×4)=48個字節(jié)。
c語言二維數(shù)組
轉(zhuǎn)置矩陣
//其中A,B是m*n矩陣:
voidtramat(matrixA,matrixB){inti,j;
for(i=0;i
for(j=0;j
B[j]
}
矩陣相加
//其中A,B,C是m*n矩陣:
voidaddmat(matrixC,matrixA,matrixB){
inti,j;
for(i=0;i
for(j=0;j
c[j]=A[j]+B[j];
}
矩陣相乘
//其中A是m*n矩陣,B是n*1矩陣,C為m*1矩陣
voidmutmat(matrixC,matrixA,matrixB){
inti,j,k;
for(i=0;i
for(j=0;j
C[j]=0;
for(k=0;k
C[j]=C[j]+A[k]*B[k][j];
}
}