数组指针(*p)[n]的用法与理解

//(*p)[N] 指向由N个元素组成的一维数组的指针变量。
//p一定要指向行地址(p是按行动)。p是指向一维数组的指针。p的值即*p指向一维数组的起始地址(加*变成列地址)
#include <iostream>
using namespace std;
int main()
{   int array_1[3]={7,8,9};
int array_2[2][3]={{1,2,3},{4,5,6}};
int (*p)[3];
int (*q)[3];
int i;
p = &array_1;       //一维数组中数组名array_1 默认代表的是行地址,取&变成列地址
cout<<*p<<endl;  
cout<<p<<endl;     //p与*p都指向同一地址。但p是行地址,*q是列地址,即&q[0],表面上是*与&抵消又成p,但实际是行与列的区别
for (i = 0;i<3;i++)
{
cout<<(*p)[i]<<" ";//*p是列地址,即p[0]
}




for (q = array_2;q<array_2+2;q++) // 一维数组中数组名array_2 默认代表的是行地址
{


cout<<q<<endl;
cout<<*q<<endl;    //q与*q都指向同一地址。但q是行地址,*q是列地址,即q[i][0],i表示第几行
cout<<(*q)[0]<<endl;   //一维数组用这种。
cout<<*(*(q))<<" "<<endl;
cout<<*(*(q+0)+0);   //二维数组用这种
}
return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值