指针、二级指针及函数和指针

指针

一、指针*p是指针指向地址里面的值

二、指针p是指针指向的地址&a[]

三、指针是指向数组a[n]位置指针

四、“%p”是输出数组地址

五、指针:在定义时*是标识*p是指针,在运算时,*p表示取地址p中的内容

六、当int *p;p=&a;则:*p和*(&a)是一样的,都是访问本地址里面的内容,还可以写成:int *p=&a;

七、指针变量p是存放地址的变量

八、p=&arr[0];和p=arr;都是取数组的首地址,是一个意思

九、*p=arr;*p++:arr[0]+1,p[i]:arr[i],*arr:arr[0],*(arr+i):arr[i]

错误的有:*arr++

十、数组指针:(*p)[4]等价于有4列的二维数组arr[3][4],(*p)[4]=arr[][4];

十一、指针数组:int* p[4]:数组p[4]是一个指针,每个数组都可以指向一个整型变量

int *p[4]={&a,&b,&c,&d}

二级指针

1、二级指针:**p,存放的是*p的地址

2、int *p=&data;int *pp=&p;则,p指向&data的地址,pp指向&p的地址,*p保存data的值,*pp保存p的值(指针的值是地址),所以**pp = data,*pp=p=&data,pp=&p,传输中,&p的值到函数时,函数中定义int **pp,则p的值为*pp

3、二级定义:**p=&p(一级指针);***p=&p(二级指针)

函数与与指针

一、函数指针(跟普通变量一样,类型匹配)int a; int*p;

int getData(int a,int b){ }

int (*p)(int a,int,b);

用指针间接调用函数:p=getData;调用:(*p)(int a,int,b)

二、指针函数

int *a(int x,int y):返回一个实型指针,即地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值