C語言數組的創建和使用


C語言數組的創建和使用

  • 數組是一組相同類型元素的集合。

一維數組的創建及初始化

//創建int類型的數組
//直接創建:不對數組進行初始化
int arr1[10];
//最常用、好用的創建方式
int arr2[10] = { 0 };	//所有元素都被初始化為0
//完全初始化,創建時對每個元素都進行初始化
int arr3[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//不完全初始化,創建時只對其中幾個元素進行初始化,其余元素默認被初始化為0
int arr4[10] = { 0, 1, 2, 3, 4 };
//對指定元素進行初始化
int arr5[10] = { [5] = 6 };
//不指定元素個數,數組的大小由創建時初始化元素個數決定
int arr6[] = { 0, 1, 2 };

一維數組的使用

對這六個數組的元素進行逐個打印:

//Print the array
void PrintArr(int sz ,int arr[])
{
	int i = 0;
	for (i = 0 ; i < sz ; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");	
}

效果如下:

一維數組在內存中的存儲形式

  • 數組名為數組首元素地址

    對剛才創建的六個數組的數組名進行打印

printf("%p\n",arr1);
printf("%p\n",arr2);
printf("%p\n",arr3);
printf("%p\n",arr4);
printf("%p\n",arr5);
printf("%p\n",arr6);

結果如下:

  • 數組在內存中是連續存放的。

對其中一個數組的元素的地址逐個打印:

int i =  0;
for (i = 0; i < 10 ;i++ )
{
	printf("&arr1[%d] : %p\n", i, &arr1[i]);	
}

結果如下:

二維數組的創建及初始化

//直接創建:不對數組進行初始化
int arr7[3][4];
//完全初始化,創建時對每個元素都進行初始化
int arr8[3][4] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
//不完全初始化,創建時只對其中幾個元素進行初始化,其余元素默認被初始化為0
int arr9[3][4] = { 0, 1, 2, 3, 4, 5, 6 };
//所有元素都被初始化為0
int arr10[3][4] = { 0 };

int arr11[3][4] = { {0 , 1 } , { 3 , 4} } ;

二維數組的使用

對這五個二維數組的元素進行逐個打印:

int i, j;
printf("arr7:\n");
for (i = 0; i < 3; i++)
{
	for (j = 0; j < 4; j++)
	{
		printf("%d ",arr7[i][j]);
	}
	printf("\n");
}
...

結果如下:

二維數組在內存中的存儲形式

  • 二維數組在內存中的存儲形式邏輯上是這樣的:

  • 實際上和一維數組一樣,是連續的

int i = 0;
for(i = 0; i < 3; i++)
{
	int j = 0;
	for (j = 0; j < 4; j++)
	{
		printf("&arr8[%d][%d] : %p\n", i, j, &arr8[i][j]);
	}
}

結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM