c语言数组

165 阅读2分钟

1.数组的3种定义方式

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void test()
{
	//数组的定义
	//语法1:数据类型 数组名[元素个数]
	int score1[4];
	//赋值
	score1[0] = 100;
	score1[1] = 99;
	score1[2] = 80;
	for (int i = 0; i < sizeof(score1)/sizeof(score1[0]); i++)
	{
		printf("%d\n", score1[i]);
	}

	//定义方式2:数据类型 数组名[元素个数] = {值1,值2,值3}
	int score2[4] = { 100,56,99,90 };
	for (int i = 0; i < sizeof(score2) / sizeof(score1[0]); i++)
	{
		printf("%d\n", score2[i]);
	}

	//定义方式3:数据类型 数组名[] = {值1,值2,值3}
	int score3[] = { 100,88,99,90 };
	for (int  i = 0; i < sizeof(score3) / sizeof(score1[0]); i++)
	{
		printf("%d\n", score3[i]);
	}
}

int main()
{
	test();
	system("pause");
	return 0;
}

2.数组名的用途

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void test()
{
	//数组名的用途
	int arr[4] = {1,2,3,4};

	//1.利用sizeof(arr)可以统计整个数组占用的内存空间大小
	printf("数组arr占用空间大小=%d\n", sizeof(arr));
	printf("arr[0]占用空间大小=%d\n", sizeof(arr[0]));
	//求数组长度
	printf("arr数组长度=%d\n", sizeof(arr) / sizeof(arr[0]));

	//2.可以利用数组名获取数组的首地址
	printf("arr数组首地址:%d\n", arr);
	//获取数组中元素的地址
	printf("arr[0]地址:%d\n", &arr[0]);

	//3.数组名是一个常量,不可以修改
}

int main()
{
	test();
	system("pause");
	return 0;
}

3.定义二维数组

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void test()
{
	//定义二维数组
	//方式1:
	int arr1[2][3];
	arr1[0][0] = 1;
	arr1[0][1] = 2;
	arr1[0][2] = 3;
	arr1[1][0] = 4;
	arr1[1][1] = 5;
	arr1[1][2] = 6;

	//遍历数组
	for (int  i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d,", arr1[i][j]);
		}
		printf("\n");
	}

	//定义方式2:
	int arr2[2][3] =
	{
		{1,2,3},
		{4,5,6},
	};

	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d,", arr2[i][j]);
		}
		printf("\n");
	}

	//定义方式3:
	int arr3[2][3] = {1,2,3,4,5,6};
}

int main()
{
	test();
	system("pause");
	return 0;
}

4.二维数组名的用途

//统计整个二维数组的大小
	printf("sizeof arr = %d\n", sizeof(arr1));

	//统计第0行的大小
	printf("sizeof arr[0] = %d\n", sizeof(arr1[0]));

	//计算二维数组的行数
	printf("二维数组的行数:%d\n", sizeof(arr1) / sizeof(arr1[0]));

	//计算二维数组的列数
	printf("二维数组的列数:%d\n", sizeof(arr1[0]) / sizeof(arr1[0][0]));

	//遍历二维数组
	for (int  i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++)
	{
		for (int j = 0; j < sizeof(arr1[0]) / sizeof(arr1[0][0]); j++)
		{
			printf("%d,", arr1[i][j]);
		}
		printf("\n");
	}
	
	//获取二维数组首地址
	printf("二维数组的首地址为:%d\n", arr1);

	//获取二维数组第二行首地址
	printf("二维数组第二行首地址:%d\n", arr1[1]);

	//获取二维数组元素地址
	printf("元素地址:%d\n",&arr1[1][1]);