大家好,今天小編來為大家解答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ì)大家有所幫助。