C++中的指针与数组

 一些基本的概念及举例说明


1. float(**def)[10]  def是一个二级指针,指向一个一维数组的针,这个一维数组的指针指向一个长度为10的数组
    float ac[10][10];
    float(*pc)[10] = &ac[1];  //指向二维数组的第二行 
    def = &pc;                //二级指针
    
    float c[10]; 
    float(*pc)[10] = &c;      //指向一维数组的指针
    def = &pc;                //二级指针
    
2. double*(*gh)[10]   指向指针数组的指针,数组中的每个元素都是double*类型
   double d[10];
    double c[10];
    double *e[10] = { c,d };
    double*(*gh)[10] = &e ;

3. double(*f[10])();  f是一个指针函数的数组
   double(*a)();
    double (*b)();
    double (*f[10])() = { a,b };
    f[0] = a;
    
4. int*((*b)[10]);  和 double*(*gh)[10]含义相同,都是指向指针数组的二级指针

5. long(*fun)(int) ; 定义了一个入参为int出参为long的函数指针
6. int (*(*f)(int,int))(int)
    f是一个函数指针,指向的函数有两个int参娄,并返回一个函数指针的函数,
7. int(*f[10])(float) 定义了一个有10个指针的数组,每个指会指向一个函数,函数入参为float,出参为int

 根据以上,二维数组的首地址本质是一个指向一维数组的指针 因此在作为函数参数时应以 int (*a)[10]的形式传参。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值