C++ 指针

1、在32位平台,指针占4个字节,指针本身就是地址
int a =1;
int * p =&a;//一级指针
int **p =&p; //二级指针
2、指针运算
int aa[3] = { 1,2,3 };
int* pp = aa;
pp++;
实际上加了int的数据类型个字节那么pp++后的*pp值为2

3、指针函数 函数指针
函数指针  int (*add)(int a);
指针函数  int* add(int a);
1)、指针函数:是指函数的返回值类型是一个指针类型,本质是一个函数,如 int *function(void);这里可以认为是int* function(void);返回值是int*,是一个指针。
2)、函数指针:本质是一个指针,但是这个指针指向一个函数,这个指针就叫函数指针,如int (*function)(void)。
从这里就可以看出来,指针函数、函数指针两个名词就看后面两字就可以区别了,是函数还是指针。
另外,函数指针有两个用途:调用函数和做函数的参数。
[cpp] 
int func(int x); //声明一个函数  
int (*fp)(int x); //定义一个函数指针  
fp = func; //将func函数的首地址赋值给指针fp 
int func(int x); //声明一个函数
int (*fp)(int x); //定义一个函数指针
fp = func; //将func函数的首地址赋值给指针fp     
        3)、回调函数:就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。


4、如果一个指针赋值给另一个指针,然后把这个指针=NULL,那么另外一个指针还是有值的,因为地址没有为NULL

int a = 1;
int *  p = &a;
int *s = p; 
a = 2;
p = NULL;
getchar();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值