强化C数组作为函数参数-多维数组的本质

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

//多维数组的本质就是一个指针数组,由于多维数组高于3级的基本上没有多大的意义
//如果非要做3级以上的话,就是对二级的数据进行修改
int printf_array01(char (*array)[30],int len)
{
	for (int i = 0; i < len; i++)
	{
		printf("s = %s\n", array[i]);
	}
	return 0;
}

void printf03(int *pArray,int len)
{
	for (int i = 0; i < len; i++)
	{
		printf("数字 = %d\n", pArray[i]);
	}
}

void printf04(int (*array)[4],int len)
{
	for (int i = 0; i < len; i++)
	{
		printf("数字1 = %d\n", (*array)[i]);//打印全部
	}

	//打印行
	for (int i = 0; i < 3; i++)
	{
		printf("数字2 = %d\n", *array[i]);//打印首元素
	}

	//打印首元素的地址
	for (int i = 0; i < 3; i++)
	{
		printf("地址一 = %x\n", array[i]);//打印首元素地址
		printf("地址二 = %x\n", &array[i]);//打印首元素地址
	}
}

int main()
{
	char a[10][30] = { "sanzhixiong", "iloveyou","haha"};
	printf_array01(a, 3);
	
	int b[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
	printf03(b,12);
	printf04(b, 12);
	system("pause");
	return 0;
}
通过以上的例子,大家可以看到就是一个二维数组本质就是等价于类型 (*)[个数的长度] 这里的个数的长度就是列的长度这么理解就可以,希望对大家有帮助,我不是一个特别会写作的程序,只是把总结出来的东西以代码的形式加上注视让他看起来更简单,由于本人的水平有限,有问题的话大家给我留言一起讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值