當前位置:首頁 » 編程語言 » c語言多維數組

c語言多維數組

發布時間: 2022-01-25 17:53:26

『壹』 c語言二維數組怎麼表示

int a[m][n];//就表示一個m行n列的整型二維數組

在c語言中數組的下標是從0開始的所以,數組a的元素個數可以表示為:a[0][0]-a[m-1][n-1]

例如:

#include<stdio.h>
intmain()
{
inta[3][2],i,j;//定義一個3行2列的整型二維數組a

for(i=0;i<3;i++)//依次給二維數組賦值
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
printf(" ");
for(i=0;i<3;i++){//輸出二維數組
for(j=0;j<2;j++)
printf("%d",a[i][j]);
printf(" ");
}
return0;
}
/*
運行結果:
12
34
45

12
34
45
*/

『貳』 C語言中是否存在多維數組

多維數組只是一種說法,其實只不過是特殊的一維數組而已。只是說,這個特殊的一維數組的每個元素的類型不是常規的int、float等這些基本類型。而是obj這些特殊的類型。

『叄』 C語言多維數組

&multi[0]不等於multi[0],
multi也不等於multi[0],
multi[0]是一維指針。
multi是一個二維指針。
multi[0][0]表示一個具體的int值。
你用%u輸出的結果實際上都是輸出了multi[0][0]的值。

『肆』 C語言二維數組

表達式a[0]+1是地址,a[0]佔2位元組 1佔2位元組 總共4位元組,;p是一個指向整形數的指針,而a 是二維數組的首地址,看懂意思就知道為什麼了!!!

『伍』 C語言 二維數組

/***用二維數組保存學生成績****/
#include"stdio.h"
#define M 100
main()
{ int i,a[M][2],n,c=0,m=0,max,min;
printf("請輸入學生記錄數:");
scanf("%d",&n);
/*********輸入每個學生的成績保存在數組中*********/
for(i=0;i<n;i++)
{printf("請輸入第%d學生的記錄\n",i+1);
printf("請輸入語文成績:");
scanf("%d",&a[i][0]);
printf("請輸入數學成績:");
scanf("%d",&a[i][1]);
printf("\n"); }
/********各課總成績********************/
for(i=0;i<n;i++)
{c+=a[i][0];
m+=a[i][1];
}
printf("語文總成績:%d\n",c);
printf("數學總成績:%d\n",m);
printf("語文平均成績:%f\n",(float)(c)/n);
printf("數學平均成績:%f\n\n",(float)(m)/n);
/**********輸出成績單*********/
for(i=0;i<n;i++)
{printf("第%d個學生:語文成績%d 數學成績%d\n",i+1,a[i][0],a[i][1]);
}
getch();
}

『陸』 C語言如何創建多維數組

什麼意思?
能具體點嗎?
其實,和一維的不是一樣的嘛,
多維的,就是將一維的,比如,你建一個一維的長12的整型數組,
完全可以看成是長3寬4的二維數組啊,
如果你想實現動態的話,我想到有二種方法,
一種,你用宏弄一個比較大的數組,然後用變數來標其有效部分.
另一種,可以根據你所要創建的大小動態的malloc.這個,就要先了解要建的大小.如果重新建的話,要free原來的,新分配新的空間.

『柒』 c語言中二維數組的定義

二維數組定義的一般形式是:
類型說明符 數組名[常量表達式1][常量表達式2]
其中常量表達式1表示第一維下標的長度,常量表達式2 表示第二維下標的長度

int a[3][4];

『捌』 C語言的多維數組怎麼嵌套定義,以及怎麼賦值

1、使用malloc函數,先分配第一維的大小,然後再循環分配每一維的大小。

2、常式,分配3行4列二維數組:

#include<stdio.h>
#include<malloc.h>
intmain()
{
int**a;
inti,j;
a=(int**)malloc(sizeof(int*)*3);//為二維數組分配3行
for(i=0;i<3;++i){//為每列分配4個大小空間
a[i]=(int*)malloc(sizeof(int)*4);
}
//初始化
for(i=0;i<3;++i){
for(j=0;j<4;++j){
a[i][j]=i+j;
}
}
//輸出測試
for(i=0;i<3;++i){
for(j=0;j<4;++j){
printf("%d",a[i][j]);
}
printf(" ");
}
//釋放動態開辟的空間
for(i=0;i<3;++i){
free(a[i]);
}
free(a);
return0;
}
/*
輸出:
0123
1234
2345
*/

『玖』 C語言中,多維數組和多個數組,哪一種更效率

如果你學過編譯了你就知道多維數組的訪問比一位數組在編譯時要更加復雜,在符號表中需要保存的內情向量也會跟大。就用你給出的例子說明:a[i][j]實際對應的內存偏移地址是由base(a)+(i*array(a,1)+j)*sizeof(a)這個公式計算得來的。其中base(a)表示數組a的基地址,而array(a,1)表示數組a的一維維度大小。而b[i]對應的偏移地址則是由base(b)+i*sizeof(b)。而對數組元素的訪問實際就是對數組元素所對應的內存偏移地址的訪問。由此可見數組每多一維,在訪問其變數時就得多做一次乘法,並且編譯後生成的中間代碼也會更長,效率自然要低。
但是,我個人推薦沒有必要非得為這點效率而迴避多維數組。其一,是因為在連續訪問多維數組時,你的編譯器會為你做優化,從而大大提高訪問效率,優化後的效率損失可以忽略不計。其次,如果數組是在堆上分配的,那就是一片連續的內存空間。比幾片零散的空間更加規整。再者,如果你寫有關多維矩陣的程序。固執的使用低維數組會大大增加程序復雜度並降低可讀性,甚至效率反而會降低。總之,我們還是不要撿了芝麻,丟了西瓜的好。

熱點內容
博圖腳本編輯 發布:2024-11-15 20:41:06 瀏覽:312
帶密碼的箱子鑰匙在哪裡 發布:2024-11-15 20:40:12 瀏覽:236
兩個次梁相交怎麼配置 發布:2024-11-15 20:27:35 瀏覽:373
android關機實現 發布:2024-11-15 20:26:42 瀏覽:56
木糠壓縮原理 發布:2024-11-15 20:22:53 瀏覽:654
編譯原理難以理解的問題 發布:2024-11-15 20:11:25 瀏覽:130
安卓9是什麼水平 發布:2024-11-15 20:06:57 瀏覽:185
intel快速存儲ssd 發布:2024-11-15 20:00:27 瀏覽:143
吃雞配置太低怎麼調高畫質 發布:2024-11-15 19:58:19 瀏覽:735
王者怎麼設置來電屏蔽安卓 發布:2024-11-15 19:56:08 瀏覽:450