指针数组与数组指针

一、指针数组

指针数组实质上是一个数组,数组元素是指针,如下所示:
int *p[]; //数组元素是整型指针,与直接定义数组一样,可以不指明元素个数
int *p[n];
char *p[]; //数组元素是char指针
char *p[n];

例1:

//指向char指针的数组用的最多
char *p[] = {"Hello C++","I am Jalen!","Nice to meet you!"};
cout<< p[0]<<'\n';  //输出p[0]的值

例2:

int a,b,c;
int *p1[] = {&a,&b,&c};
int x[4],y[4],z[4];
int *p2[] = {x,y,z};
cout<<*p1[0]<<'\n';  //输出p1[0]的值

二、数组指针(多维数组)

其实直接称数组指针不好理解,说白了,数组指针就是一个多维数组,
一般来说,除数组的第一维(下标)可以不指定大小外,其余各维都必须明确指定大小。所以数组指针形式如下:
int (*p)[13];

int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*p)[4];
p = a;
cout<<*(*(p+i)+j)<<'\n';  //输出第i行,第j列的元素值
cout<<p[i][j]<<'\n';  //输出第i行,第j列的元素值

三、函数指针

int *p(void); //表示函数,此函数无参,返回整型指针。
int(*P)(void) ;//表示函数指针,可以指向无参,且返回值为整型指针的函数。
例:

int max(int x,int y)
 {
     int z;
     if(x>y) z = x;
     else z = y;
     return(z);
 }
 int main()
 {
      int max(int,int);
      int (*p)(int,int);
      p = max;
      int c = (*p)(1,2);
      cout << a<< b << c << '\n';
      return 0;
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值