C语言学习day16:二维数组

二维数组格式:

数据类型 数组名[行][列] =
{
    {值1,值2},
    {值3,值4}
}

代码:

int arr[2][3] = { {1,2,3},{4,5,6} };

那么我们怎么找它的下标呢,我先上一副图:

假如我现在要找1,那么它的下标就会是arr[0][0];

我们知道一维数组的求个数是:

由整个数组的大小/第一个数组元素的大小

sizeof(arr)/sizeof(arr[0])

那么我们二维数组的个数以及值要怎么求呢:

代码:

	printf("二维数组大小=%d\n",sizeof(arr));//行*列*数据类型大小
	printf("二维数组一行大小:%d\n",sizeof(arr[0]));
	printf("二维数组元素大小:%d\n",sizeof(arr[0][0]));

	printf("二维数组行数:%d\n", sizeof(arr)/sizeof(arr[0]));
	printf("二维数组列数:%d\n",sizeof(arr[0]) / sizeof(arr[0][0]));

解释一下

  • sizeof(arr)=整个二维数组的大小
  • sizeof(arr[0])=二维数组第一行(下标0)的大小
  • sizeof(arr[0][0])=二维数组单个元素的大小

接下来我们计算:

  • sizeof(arr)/sizeof(arr[0])=整个二维数组的大小/二维数组第一行(下标0)的大小=行数    举个例子:总值=大小*单数
  • sizeof(arr[0])/sizeof(arr[0][0])=第一行(下标0)的大小/单个元素的大小=单行的数量

我们来给数组赋值:

int arr[2][3] = { {1,2,3},{4,5,6} };

输出:

接下来我们看看二维数组地址的变化:

代码:

int main()
{
	int arr[2][3] =
	{
		{1,2,3},
		{4,5,6}
	};
	//二维数组首地址
	printf("%p\n", arr);
	printf("%p\n", arr[0]);
	printf("%p\n",&arr[0][0]);

	system("pause");
	return EXIT_SUCCESS;
}

 输出:

没错。我们发现arr=arr[0]=arr[0][0] 

说明取的依然是首地址

我们现在改一下下标

代码:

	printf("%p\n", arr);
	printf("%p\n", arr[1]);
	printf("%p\n",&arr[1][1]);

输出:

 没错,它们还是连续性的,并且每个元素相隔的规律和一维数组一样

接下来我们遍历一下二维数组的地址

代码:

	int arr[2][3] =
	{
		{1,2,3},
		{4,5,6}
	};
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%p\n",&arr[i][j]);
		};

输出:

这证明了我们的结论是完全正确的

同时二维数组还有三种写法

代码:

	int arr[2][3] = { {1,2,3},{4,5,6} };
	int arr[2][3] = { 1,2,3,4,5,6 };
	int arr[][3] = { 1,2,3,4,5,6 };

 输出:

都是可以的 

相关推荐

  1. C语言数组

    2024-02-19 00:14:01       43 阅读
  2. C语言学习笔记day16

    2024-02-19 00:14:01       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-19 00:14:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-19 00:14:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-19 00:14:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-19 00:14:01       18 阅读

热门阅读

  1. 算法训练营day28(补), 贪心算法2

    2024-02-19 00:14:01       30 阅读
  2. Hive使用双重GroupBy解决数据倾斜问题

    2024-02-19 00:14:01       32 阅读
  3. Qt - 不同类之间槽函数和信号的连接

    2024-02-19 00:14:01       28 阅读
  4. 部分系统函数实现

    2024-02-19 00:14:01       25 阅读
  5. GB/28181 2022 上联检测项

    2024-02-19 00:14:01       28 阅读
  6. 洛谷 P6382 『MdOI R2』Car

    2024-02-19 00:14:01       30 阅读
  7. 云服务器可以运用在哪些方面?

    2024-02-19 00:14:01       23 阅读
  8. 题记(45)--字符串匹配

    2024-02-19 00:14:01       30 阅读
  9. pytorch入门笔记二

    2024-02-19 00:14:01       28 阅读
  10. 关于数据库

    2024-02-19 00:14:01       38 阅读