2024指针指向函数,指向语句

2024指针指向函数,指向语句【C语言】指针进阶:掌握指针数组和指向指针的指针每日一图:本篇内容: 1.字符指针2.指针数组3.数组指针3.1数组指针的定义3.2&数组名和数组名的区别3.3数组指针的使用 4.数组参数和指针参数4

【C语言】指针进阶:掌握指针数组和指向指针的指针   每日一图:   
在这里插入图片描述   本篇内容: 1.字符指针2.指针数组3.数组指针3.1数组指针的定义3.2&数组名和数组名的区别3.3数组指针的使用 4.数组参数和指针参数4.1一维数组传参4.2二维数组传参4.3一级指针传参4.4二级指针传参 5.函数指针6.函数指针数组简易计算器 7.指向函数指针数组的指针   1.字符指针   char*   一般使用:   这里的pc就是一个字符指针变量,这种方法是让我们的字符指针指向了一个字符变量。   另一种使用方式如下:   把字符串首字符的地址赋给了一个指针。   因为这个字符串是一个常量字符串(不能被修改)所以在char*前面加一个const会更加严谨。   2.指针数组   指针数组就是存放指针的数组或存放地址的数组。   存放字符指针的数组:   这四个字符串的首字符的地址都被放在了指针数组arr中。   打印:   运行效果:   
在这里插入图片描述   存放整形指针的数组:   打印:   运行效果:   
在这里插入图片描述   3.数组指针   3.1数组指针的定义   数组指针也是指针。   字符指针 – 存放字符地址的指针 – 指向字符的指针 char*   整形指针 – 存放整形地址的指针 – 指向整形的指针 int*   浮点型指针 – 指向浮点型的指针 float* double*   数组指针 – 存放数组地址的指针 – 指向数组的指针   数组指针的写法:   这里的“pa”就是一个数组指针   pa和 * 号结合,他是个指针,他指向了“[10]”(10个素的数组),数组的每个素的类型是” int ”   &arr取出的是数组的地址,只有数组的地址才需要数组来接收   3.2&数组名和数组名的区别   先来看一段代码:   运行效果:   
在这里插入图片描述   可以看到前面两种写法+1都只跳过了4个字节,证明他们的类型都是“ int* “,而最后一种写法跳过了40个字节(整个数组)证明他的类型是 int(*)[10],那么我们就能理解他们之间的区别了。   数组名 – 数组首素的地址   &数组名 – 是数组的地址   数组首素的地址和数组的地址从值的角度来看是一样的,但是意义不一样。   如果我们想拿到整个数组的地址我们就可以用 &数组名,如果只想拿到 数组首素的地址 就可以用数组名。   在一维数组中很少使用数组指针,在二维数组中才可能使用。   3.3数组指针的使用   数组名表示首素的地址,对于二维数组来说,他的第1行就是他的第一个素,第一行的地址,相当于是一个一维数组的地址。   那么我们就可以放到一个数组指针里( int(*p)[4] )。   4.数组参数和指针参数   函数的参数应该如何设计呢?   4.1一维数组传参   一维数组传参的时候形参该如何写?   以上方法均可   4.2二维数组传参   二维数组传参的时候形参该如何写?   以上方法均可   4.3一级指针传参   指针变量传参,指针变量接收   当一个函数的参数部分为一级指针的时候,函数能接收什么参数?   4.4二级指针传参   二级指针传参,形参部分用二级指针接收。   当函数的参数为二级指针的时候,可以接收什么参数?   5.函数指针   前面我们讲到了数组指针:指向数组的指针。   那么函数指针是什么呢?其实就是指向函数的指针   其实函数也是有地址的,我们来看下面这条代码:   运行效果:   
在这里插入图片描述   可以看到,我们把Add函数的地址打印了出来。   那么函数指针应该怎么写呢?很简单,我们看下面这条代码:   函数指针的写法和数组指针的写法非常相似。   首先pf是个指针,pf指向的是函数,函数的参数类型是(int int),pf指向的函数的返回类型是int,这样我们的pf就定义好了。   &函数名和函数名都是函数的地址   所以我们也可以这样写:   那我们能不能通过pf指针来调用Add函数呢?   可以。方法也很简单:   运行效果:   
在这里插入图片描述   首先pf是个指针,指针解引用才能找到对应的函数(可以省略为pf,但方便理解我们还是写上:(*pf),调用的时候要传参,那我们就传个2和3:(*pf)(2,3),传过去之后函数计算完结果,那我们就把结果放在ret里面:int ret = (*pf)(2,3);   6.函数指针数组   想要写出函数指针数组,要从函数指针的基础上进行改造。   那么函数指针数组有什么作用呢?   我们来用函数指针数组写一个简易的计算器。   简易计算器   这里的函数指针数组代替了switch函数,简化了很多代码,但是他也有缺点:因为函数指针数组限制了他(函数里的参数类型、返回类型必须一致),所以他只能计算双目操作数。   7.指向函数指针数组的指针   建议在函数指针数组的基础上进行修改。   我们先来看一下函数指针数组:   这里的pf和[]结合说明他是一个数组,但是我们希望他是指针,那我们就在这个基础上进行修改:   我们只需要加上*然后再把ppf括起来,这时候ppf就是一个指针了。   以上就是本篇的全部内容了,希望大家看完能有所收获。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/82591.html

(0)
上一篇 2024年 7月 28日 下午6:43
下一篇 2024年 7月 28日

相关推荐

关注微信