嵌入式c语言学习--数组指针和二维数组配合使用

在seekij函数中

可以直接把p当做数组

写为:return p[pi][pj];

输入参数时,主函数调用写法,initij(&lin,&col);  对于普通变量要加取地址&

指针取值写法:*(*(数组名或者指针名+第几行)+第几列);

指针地址写法:*(数组名或者指针名+第几行)+第几列;//去掉外围一个*()即可

引用解释:

 

代码:

#include <stdio.h>
//二维数组使用指针查数据

void initij(int *pi,int *pj)
{
	printf("请输入要查询的行列值:\n");
	scanf("%d",pi);
	scanf("%d",pj);
	puts("done");
	
}

//指针写法
int seekij(int (*p)[3],int pi,int pj)//数组指针
{
	int data;
	data=*(*(p+pi)+pj);
	
	return data;
	//return p[pi][pj]
}
/*  不用指针写法
int seekij(int arr[][3],int pi,int pj)
{
	int data;
	data=arr[pi-1][pj-1];
	
	return data;
}
*/
int main()
{
	int arr[2][3]={{11,22,33},{44,55,66}};
	int lin,col;
	int data;
	
	//1.输入要查询的行列值	
	initij(&lin,&col);
	
	
	//2.查询二维数组里的值
	data=seekij(arr,lin,col);
	
	
	//3.输出值
	printf("%d行%d列的数据为%d",lin,col,data);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值