二维数组与指针

 详细解释在这里:(我只分享,摘录我所欠缺的知识)

C语言二维数组指针(指向二维数组的指针)详解https://blog.csdn.net/weixin_43323830/article/details/106386859?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163231513016780264050861%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163231513016780264050861&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-106386859.pc_search_result_control_group&utm_term=%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E6%8C%87%E9%92%88&spm=1018.2226.3001.4187icon-default.png?t=L892https://blog.csdn.net/weixin_43323830/article/details/106386859?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163231513016780264050861%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163231513016780264050861&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-106386859.pc_search_result_control_group&utm_term=%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E6%8C%87%E9%92%88&spm=1018.2226.3001.4187

括号中的*表明 p 是一个指针,它指向一个数组,数组的类型为int [N],这正是 a 所包含的每个一维数组的类型。

[ ]的优先级高于*,( )是必须要加的,如果赤裸裸地写作int *p[4],那么应该理解为int *(p[4])p 就成了一个指针数组,而不是二维数组指针了。


//M,N  为定义的常数    
//不够的地方补零

//  二维数组的定义形式
a[M][N]={ {1,2,3,4,5}, 
          {1,1,1,1,1},
          {1,58,5,98},
        };


//  对二维数组的调用形式
int (*p) [N]=a;
//  对二维数组的调用形式
int p[][N]=a;

eg:(实际验证过哦~)

void fun (int (*s)[10], int *b, int *n,int mm, int nn)
{
	int i,j;
	for(j=0;j<nn;j++)
	{
		for(i=0;i<mm;i++)
		{
			b[*n]=*(*(s+i)+i);
            //b[*n]=s[i][j];   //他俩是等价的
			*n+=1;
		}
	}
}

运行结果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nop_(void)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值