- N +

c語言二維數(shù)組的定義(C語言二維數(shù)組輸入與輸出)

大家好,今天小編來為大家解答c語言二維數(shù)組的定義這個(gè)問題,C語言二維數(shù)組輸入與輸出很多人還不知道,現(xiàn)在讓我們一起來看看吧!

C語言二維數(shù)組a=(int **) malloc(sizeof(int *) * r)是什么意思

a=(int**)malloc(sizeof(int*)*r)首先,這句話的意思就是使用malloc申請(qǐng)sizeof(int*)*r這么大的內(nèi)存空間。

其次,因?yàn)閙allo的返回值是void*類型,所以要進(jìn)行一個(gè)類型轉(zhuǎn)換,你可以轉(zhuǎn)換成任何的類型。

最后,因?yàn)槟阋敵鲆粋€(gè)3*5的矩陣,所以如果直接定義的話,應(yīng)該定義為inta[3][5],而這個(gè)a就是int**類型,所以你使用malloc分配內(nèi)存值,要將malloc的內(nèi)存類型格式化為int**類型。int**p;inta[3][5];p=a;//可以這樣賦值的。輸出一個(gè)3*5數(shù)列的例子#include?<stdio.h>#include?<stdlib.h>int?main(){????int**?a?=?(int**

)malloc(sizeof(int*)*3);int?i=0,?j=0;for?(i=0;?i<3;?i++){a[i]?=?(int*

)malloc(sizeof(int)*5);for?(j=0;?j<5;?j++){*(*(a+i)+j)=j;}}for?(i=0;?i<3;?i++){for?(j=0;?j<5;?j++){printf("%d\t",?*(*(a+i)+j));}printf("\n");}delete[]?a;????return?0;}

c語言數(shù)組定義和賦值

二維數(shù)組定義的一般形式是:dataTypearrayName[length1][length2];其中,dataType為數(shù)據(jù)類型,arrayName為數(shù)組名,length1為第一維下標(biāo)的長度,length2為第二維下標(biāo)的長度。

我們可以將二維數(shù)組看做一個(gè)Excel表格,有行有列,length1表示行數(shù),length2表示列數(shù),要在二維數(shù)組中定位某個(gè)元素,必須同時(shí)指明行和列。例如:inta[3][4];定義了一個(gè)3行4列的二維數(shù)組,共有3×4=12個(gè)元素,數(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]

如果想表示第2行第1列的元素,應(yīng)該寫作a[2][1]。

也可以將二維數(shù)組看成一個(gè)坐標(biāo)系,有x軸和y軸,要想在一個(gè)平面中確定一個(gè)點(diǎn),必須同時(shí)知道x軸和y軸。

c語言初學(xué)二維數(shù)組問題

定義方法

數(shù)組類型數(shù)組名稱[一維長度][二維長度]

使用方法

循環(huán)嵌套常用for循環(huán)雙層嵌套循環(huán)對(duì)數(shù)組進(jìn)行遍歷

C語言二維數(shù)組輸入與輸出

代碼,實(shí)現(xiàn)先輸入二維數(shù)組的行數(shù)m和列數(shù)n,并再輸入m*n個(gè)整型數(shù)據(jù)存到動(dòng)態(tài)二維數(shù)組中。最后輸出所有二維數(shù)組的元素值。

intmain()

{

int**p;//定義二維指針。

intm,n;//行數(shù)和列數(shù)。

inti,j;

scanf("%d%d",&m,&n);//輸入行數(shù)和列數(shù)。

if(m<=0||n<=0)return-1;//行數(shù)或列數(shù)非法。

p=(int**)malloc(sizeof(int*)*m);//申請(qǐng)一組一維指針空間。

for(i=0;i<m;i++)

p<i>=(int*)malloc(sizeof(int)*n);//對(duì)于每個(gè)一維指針,申請(qǐng)一行數(shù)據(jù)的空間。

for(i=0;i<m;i++)

for(j=0;j<n;j++)

scanf("%d",&p<i>[j]);//輸入第i行第j列的數(shù)據(jù)。其中&p<i>[j]也可以寫作p<i>+j或者是*(p+i)+j.功能相同。

printf("輸入的數(shù)組為%d行%d列:\n",m,n);

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)//這個(gè)循環(huán)可以輸出一行元素。

printf("%d",p<i>[j]);//輸出i行j列的元素。

printf("\n");//每行輸入結(jié)束加換行符。

}

//釋放內(nèi)存

for(i=0;i<m;i++)

free(p<i>);

free(p);

return0;

}

擴(kuò)展資料:

函數(shù):free

功能:與malloc()函數(shù)配對(duì)使用,釋放malloc函數(shù)申請(qǐng)的動(dòng)態(tài)內(nèi)存。(另:對(duì)于free(p)這句語句,如果p是NULL指針,那么free對(duì)p無論操作多少次都不會(huì)出問題。如果p不是NULL指針,那么free對(duì)p連續(xù)操作兩次就會(huì)導(dǎo)致程序運(yùn)行錯(cuò)誤。)

用法;voidfree(void*ptr);

程序例:

C/C++代碼如下:

#include<string.h>

#include<stdio.h>

#include<alloc.h>//or#include<malloc.h>

intmain(void)

{

char*str;

/*allocatememoryforstring*/

str=(char*)malloc(10);

/*copy"Hello"tostring*/

strcpy(str,"Hello");

/*displaystring*/

printf("Stringis%s\n",str);

/*freememory*/

free(str);

str=NULL;

return0;

}

c語言怎么定義2維數(shù)組函數(shù)

有的數(shù)組只有一個(gè)下標(biāo),稱為一維數(shù)組,其數(shù)組元素也稱為單下標(biāo)變量。在實(shí)際問題中有很多量是二維的或多維的,因此C語言允許構(gòu)造多維數(shù)組。多維數(shù)組元素有多個(gè)下標(biāo),以標(biāo)識(shí)它在數(shù)組中的位置,所以也稱為多下標(biāo)變量。二維數(shù)組定義的一般形式是:

類型說明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]其中常量表達(dá)式1表示第一維下標(biāo)的長度,常量表達(dá)式2表示第二維下標(biāo)的長度

OK,本文到此結(jié)束,希望對(duì)大家有所幫助。

返回列表
上一篇:
下一篇: