指针数组、数组指针_马鸿凯_新浪博客

int (*p)[5],(数组名是指针,即数组首元素地址的指针),换言之指向数组的指针。

数组指针是指向数组地址(首地址)的指针,其本质为指针

int a[4][5];

int (*p)[5]=a;

是一个指针变量,它指向包含5个int元素的一维数组,

此时p的增量以它所指向的一维数组长度为单位;

*(p+i)是二维数组a[i][0]的地址;

*(p+2)+3表示a[2][3]地址(第一行为0行,第一列为0列),*(*(p+2)+3)表示a[2][3]的值。

 

(例如

int *p[3],定义了p[0],p[1],p[2]三个指针),

指针数组是数组元素为指针的数组,其本质为数组。


#include

#include

#define COL 5

#define ROW 3

#define MAX 22

using namespace std;

#if 1

int main(){

 int(*iPoint)[COL]; 

int array[ROW][COL] = { {1,2,3,4,5},{6,7,8,9,10},{0,11,22,33,44} };

 int *iPointA[6]; 

int arrayX[MAX] = { 55,66,77,88,99,12,23,34,45,56,67 }; 

 int i = 0;

 int j = 0;

 cout << "数组指针的使用" << endl; iPoint = array;   // int(*iPoint)[5]中的 while (i < ROW) {  j = 0;  while (j< COL)  

{   

//cout << *((*iPoint+i)+j) <<" ";       

cout << *((*(iPoint + i) )+ j) << " ";   //与下面一直表达     // *iPoint++;  

// cout << *(*iPoint + j) << " "; 加上后面的 *iPoint++;

   j++;  }   

cout << endl;

 // *iPoint++;

  i++; }

 cout << "指针数组:

iPointA[0] = " << endl; 

i = 0; do {  iPointA[0] = &arrayX[i];  

cout << "arrayX["<< i <<"] = " << *iPointA[0] << "  ";  

if ((i+1) % 4 == 0)  

 cout << endl;  

i++;

 } while (i < MAX);

  return 0;

}

#endif



注:只是学习记录,仅供参考,如有雷同,不胜荣幸!​


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ma_Hong_Kai

微信 2936729162

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

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

打赏作者

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

抵扣说明:

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

余额充值