【C语言详解】2.深入学习指针

目录

 

1.基本概念

2.字符指针

3.指针数组

4.数组指针

5.函数指针

5.1函数指针数组

5.2指向函数指针数组的指针

6.回调函数


1.基本概念

  • 指针是个变量,用来存放地址,地址唯一标识一块空间内存
  • 指针的大小是固定4/8个字节
  • 指针有类型,指针的类型决定了指针+整数的步长

2.字符指针

表示方法有如下两种:

char ch="luckly";
char *p=&ch;
*p="luckly";
char *pstr ="luckly";//直接用指针指向
printf("%s\n",pstr);
return 0;

3.指针数组

  • 存放指针的数组

4.数组指针

  • 指向数组的指针 
  • int (*p) [10] :[]的优先级是高于*的,所以必须加上()来保证*与p先结合成一个指针变量
  • 存放的是数组的地址,而非数组本身

int * p 指向整型数据的指针

float * p 指向浮点型数据的指针

  • arr与&arr

arr是数组名,代表数组首元素的地址

&arr代表整个数组,表示数组的地址

虽然arr与&arr的值相同,但意义是不同的。如上图,可了解。

例:

  1. *(arr+1) 表示首元素地址+1
  2. int(*arr)[10]  数组指针;int(*parr3[10])[5] 存放指针数组的数组;

5.函数指针

void(*pfun)() :pfun先和*结合,说明pfun是指针,指针指向一个函数,指向的函数无参数,返回值类型为void 类型

int (*fun)(int a, int b):fun是指针,指向参数为int a 和int b ,返回值为int型

5.1函数指针数组

int (*parr[10])():parr先和[]结合,说明parr是数组,数组的内容是int(*)()类型的函数指针

用途:转移表

5.2指向函数指针数组的指针

是一个指针,指向一个数组,数组的元素都是函数指针

void(*(*p)[5])(int,int)

6.回调函数

  • 回调函数就是通过函数指针调用的函数。
  • 回调函数一般通过函数指针实现
  • 回调函数一般不是函数的实现方调用,而是在特定的场景下,由另外一方调用。

(有待继续学习,不是很了解)

一道例题帮助理解今天的概念OvO

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值