发布网友 发布时间:2022-02-28 13:53
共6个回答
热心网友 时间:2022-02-28 15:22
因为指针通过地址传递参数,如果不用指针传送速度慢。
在没有C++语言的年代,没有面向对象、模板的语法支持,struct中还不能定义函数,用C语言想要对业务功能(算法,此处即指函数)进行抽象,不想依赖具体的数据结构/数据类型,此时就必须用指向函数的指针来实现抽象与具体的分离,
该函数的入参可以是void*,这样调用者就可以传入任意类型的参数了。后来有了C++,就用类成员函数和泛型(模板+functor)来代替了,这样做有更强的静态类型检查机制和编程约束,有利于减少滥用风险。
函数指针的一个典型应用场合是实现回调,因为此时还不知道具体函数定义,事件发生时才调用、才确定;类比于面向对象中的“多态”+设计模式中的“观察者模式”,回调的实质仍然是抽象。
扩展资料
C语言程序开发中,数组指针是有其独特的作用的,它可以用于*函数接收指针索引的内存长度,利用编译器规范程序项目。在定义数组指针时,利用C语言的typedef关键字常常能够使代码更加易读:
typedef int Vector3d[3];
void transform(Vector3d *vector);
/* equivalent to `void transform(int (*vector)[3])` */
...
Vector3d vec;
...
transform(&vec);
参考资料来源:百度百科—指针
热心网友 时间:2022-02-28 16:40
很多情况可以用到。这需要在编程过程中形成一种思维。热心网友 时间:2022-02-28 18:15
指针通过地址传递参数,可以双向传递值。热心网友 时间:2022-02-28 20:06
C语言中就指针最难,指针主要是处理地址不像数组那样挨着好找的情况,把下一个数的地址给上一个保管,才能一个接着一个找到。不过我觉得很烦了,最好还是学java,高级的,更符合人热心网友 时间:2022-02-28 22:14
指针是C语言的精华,不会指针,相当于C语言根本没学明白!等你到嵌入式系统的编写 或者 上位机APP的程序编写的时候就知道了 C语言说到底是一种交流语言 类似于英语一样热心网友 时间:2022-03-01 00:39
const unsigned int VOICE_TYPE_0[]={0xFFFF};