第82节 使用指针操作二维数组

本文详细介绍了如何使用指针来操作二维数组,包括通过‘指向’二维数组元素的指针、数组指针以及指针数组等概念,是C/C++编程中关于二维数组操作的重要知识点。
摘要由CSDN通过智能技术生成

一、使用“指向”二维数组“元素”的指针

#include <stdio.h>
int main()
{
   
	int a[3][4] = {
    1,3,5,7,9,11,13,15,17,19,21,23 };
//可看作: int a[3][4] = { a[0],a[1],a[2] }; 其中a[0]是首元素,且a[0]是一维数组名;
//a[0]可看作: int a[0][4] = { a[0][0],a[0][1],a[0][2],a[0][3] };其中a[0]为数组名;
	int* p = &a[0][0];//将二维数组看成一个有12个元素的一维数组,其中a[0][0]为首元素地址,
 //int* p = a[0];  //a[0]为二维数组的首元素,此处视作一维数组名,代表a[0][0]地址;
 //int* p = a;错误 //a为二维数组名,代表首元素a[0]的地址(行地址),&a[0]=>&(&a[0][0])
 //这种写法错误,虽编译器可通过,但理论上说不通,实际为二级指针,不能用二级指针直接赋值;
 //int* p=*a;      //*a等价于*(&a[0]),即a[0],其中a[0]为数组名代表&a[0][0]
	while (p < *a + 12) 
	{
   
		printf("%d ", *p++);
	}
}
运行结果: 
1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值