c语言指针专项

C语言常用指针专项

指针是c语言的最强武功,让其他编程语言望尘莫及。

一级指针

int a = 10;
int* p = &a; 

指针与数组的关系

int a[]= {1,2,3,4,5};
//声明数组指针
int *p = a; <==> int *p = &a[0];

*p == a[0];
*(p+1) == a[1];
//虽然指针也可以索引数组,但是还是要用a[]形式索引

二级指针

int a = 10;
int *p1 = &a; 
int **p2 = &p1; //二级指针指向的是一级指针的地址
//常用于函数内初始化指针,从参数中返回

指针数组与数组指针的关系

//指针数组是存储指针的数组
//数组指针是指向数组的指针
int a[][3]={{1,2,3},{4,5,6}};
//指针数组
//可以存储任意指针
int* p[2] = a; <=> (int*) p[2] = a;
//数组指针
//只能存储数组地址,但可以用于限定储存的数组长度
int (*p)[3]=a;
//非常容易混淆,如果知晓优先级就能推导出来

函数指针

void (*func)(arg...);
返回类型 (*函数名)(参数)//可以用于闭包,函数封装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值