发布网友 发布时间:2022-03-22 13:53
共3个回答
懂视网 时间:2022-03-22 18:14
在C语言中,指针的使用非常广泛,使用指针往往可以生成更高效、更紧凑的代码。
1、指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;
2、C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;
3、C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。
总结
在C语言中,指针的使用非常广泛,使用指针往往可以生成更高效、更紧凑的代码。
热心网友 时间:2022-03-22 15:22
写简单的程序的话不用指针也行了吧. 比如, int a = 2; int* p = &a; *p = 3; 这里a是一个地址(编译后), 为了读写这个地址单元里的东西,可以用p,也可以用一般变量a.对于指针的便利,我现在能想到的,可能是:函数A调用函数B时,把一个内存块的地址传递过去,这样可以避免按值传递时开辟一个栈空间并逐一拷贝内存块里的值的开销(C++里的拷贝构造函数在做这件事),并且A,B函数操作的都是同一个内存块里的东西,如果这就是目的,那么传指针就是很有效率的做法(如果不用指针就可能要用一个全局的变量了). 用一个指针(函数指针)存放一系列同类型的函数名(入口地址),方便函数调用. void*类型指针可以存放任何类型指针. 让父类类型指针指向任何子类对象可以实现动态绑定. 写着写着似乎指针还挺有用,呵呵.我相信指针的使用一定要很小心,否则可能要忍受程序报错而总找不到错在何处的痛苦. 有一些比较极端的例子, 如一个函数返回了一个函数里局部变量的指针,一用就出错; 如声明一个指针没有分配空间就传给别一函数使用; 如多个线程都在使用同一个内存块,你修我改,甚至有人把它删掉了或不小心让指针指向系统用的内存,另一个人还准备往里读写东西---可能要费心思来同步. 如指针指向的内存可能是new/malloc出来的,可能要想办法及时删除并要保证没有别的线程要用...追问pascal里有关于指针的一段描述,那么它适用于C语言吗?
热心网友 时间:2022-03-22 16:57
指针也是一种变量。