指针数组和数组指针——兄弟你的括号呢?

参考:http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html

指针数组:array of pointers,指有这么一组数组,每个元素都是指针。

int *a[4],本质是一个数组。

由于[]的优先级高于*,所以当表示某个元素的时候,*a[i]和*(a[i])有相同的效果。

 

数组指针:a pointer to an array,表示有一个指针,它指向一个数组,即第一个元素的地址。

int (*a)[4],本质是一个指针。

数组指针也叫行指针,可以指向二维数组:

int a[3][4];

int (*p)[4];

p=a;

 

举个列子:

 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     int arr[4]={0,1,2,3};//一个普通数组 
 5     int *p_arr[4];        //定义一个 指针数组 
 6     int (*arr_p)[4];//定义一个 数组指针 
 7     
 8     arr_p=&arr;//让数组指针指向数组(首元素地址)
 9     
10     for(int i=0;i<4;i++){    //将指针数组中的指针逐一指向普通数组的元素 
11         p_arr[i]=&arr[i];
12     } 
13     
14     cout<<*p_arr[1]<<endl;
15     cout<<(*arr_p)[2]<<endl;
16     return 0;
17 }

输出结果为:

1

2

 

posted on 2019-01-08 15:30 BlackDn 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/luoyang0515/p/10239259.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值