常量指针、指针常量、指针函数、函数指针、指针数组、数组指针区别在哪里?

一、常量指针、指针常量

int a;
int * const p = &a    //指针常量,*p可以修改*p = 8;(OK)
                                                   p不可以修改 p++(ERROR)

int a,b;
const int *p = &a;//常量指针    *p不可修改 *p = 8;(ERROR)
                                                  p 可以修改 p = &b  (OK)

还有一种
const int * const p = &a;    // *p 和 p均不可改变了

二、指针函数、函数指针

1、指针函数:指带有指针的函数

如:

int *f(xy); 一个函数的返回值是一个指针类型,或者可以说返回的是一个地址。

2、函数指针:是指向函数的指针变量(多用于回调机制)

如:

int (*f) (int x); /* 声明一个函数指针 参数为x */

 f=fun; /* fun函数的首地址赋给指针f */


三、指针数组、数组指针

1、指针数组:一个元素为指针的数组

如:

int *p[10] //[]优先级较高先和p 结合 再与int*结合说明是一个int 指针类型的数组;其中p[0] ~ p[9]都是指针类型

2、数组指针:别名行指针

如:

int (*p)[10]                    //p是一个指针,指向一个数组可以用    *(p+5)   模式访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值