c语言里指针的作用,C语言指针用处

1,C语言指针用处我也是初学者,但是指针是可以操作内存的,使得程序更加高效 。能够更加方便操作文件什么的我想最大的好处就是效率吧通过指针可以直接访问内存中的数据,使其操作更加灵活,如classa{public:virtualvoidai{cout<<"abc";}};classb:publica{public:voidai{cout<<"hello";}};intmain(){a_a;b_b;a*p=指针最大作用是什么我不太清楚 , 但是在数据结构非常常用,(比如写链表是,多维矩阵,二叉数 等等)
2 , 在C语言中什么是指针指针是干什么用的有什么意义写简单的程序的话不用指针也行了吧. 比如, int a = 2; int* p = &a; *p = 3; 这里a是一个地址(编译后), 为了读写这个地址单元里的东西,可以用p,也可以用一般变量a.对于指针的便利,我现在能想到的,可能是:函数A调用函数B时,把一个内存块的地址传递过去,这样可以避免按值传递时开辟一个栈空间并逐一拷贝内存块里的值的开销(C++里的拷贝构造函数在做这件事),并且A,B函数操作的都是同一个内存块里的东西,如果这就是目的,那么传指针就是很有效率的做法(如果不用指针就可能要用一个全局的变量了).用一个指针(函数指针)存放一系列同类型的函数名(入口地址),方便函数调用.void*类型指针可以存放任何类型指针.让父类类型指针指向任何子类对象可以实现动态绑定.写着写着似乎指针还挺有用,呵呵.我相信指针的使用一定要很小心,否则可能要忍受程序报错而总找不到错在何处的痛苦. 有一些比较极端的例子, 如一个函数返回了一个函数里局部变量的指针,一用就出错; 如声明一个指针没有分配空间就传给别一函数使用; 如多个线程都在使用同一个内存块,你修我改,甚至有人把它删掉了或不小心让指针指向系统用的内存,另一个人还准备往里读写东西---可能要费心思来同步. 如指针指向的内存可能是new/malloc出来的,可能要想办法及时删除并要保证没有别的线程要用...
3,c语言指针的作用指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址 。也就是P在这里代表的是一个内存的地址 。a都表示的是内存单元的名称,它找数据时是先通名称去找地址 , 再通过地址去找内存单元 。而指针则直接找内存单元,所以指针对于存取速度而言有一点的快速性 。还有就是指针的指向的地址可变 , 就实现了批处理;而变量名的地址是一定的,不可变的,难以实现内存单元中一系列数据的批处理 。指针像上面那样用不太现实(因为没必要);指针用更多的是函数地址的传送,链表的应用;单个的数字单然是直接用比较好了,可是你想过没有,如果你现在有个成千上万的数字,你要从中选出第5554个数字的值,如果是用数组,那你要在第5554次才能找到它,而指针,你只要找到它的地址 , 就可以直接找到它了,这样的速度是不能比的啊指针的速度会更快些,指针只是储存一个地址当指针是一个简单元素的地址时,当然没必要向你题中那样表示 , 直接把0赋值给a 。但是当数据元素不再是简单类型的,而是结构体,联合体之类的 , 那么指针就大有用处,指针表示的是一个复杂元素的地址,这个地址内可以既有数据,又有下一个元素的地址 。或者在邻接表里面,一个数据元素的指针更不是那么简单 。我的团友的答案很专业,有空采纳个吧~我等得心都急了,谢谢先~~指针是C语言的精髓【c语言里指针的作用,C语言指针用处】
4 , 指针的作用是什么)指针的操作流程申请并初始化或配置为空:int *pInt=NULL;开辟空间或使其指向对象:pInt=new Int(3);或int i=3;pint=&i;用指针(更确切地说是操作内存,在使用之前加if(pint!=NULL)或assert(pInt!=NULL)后再使用,以防内存申请失败的情况下使用指针): if(p!=NULL) {use pint};释放使用完的内存.free(pInt);置指针为空pInt=NULL;(避免野指针的出现)(3) 在函数的参数传递中,编译器总是要为函数的每个参数制作临时副本,假如参数为p的话,那么编译器会产生p的副本_p,使_p=p; 假如函数体内的程式修指针的作用:1、指针就是指向一个特定内存地址的一个变量 。c语言指针可以有效地表示复杂的数据结构、动态分配内存、高效地使用数组和字符串、使得调用函数时得到多个返回值等 。指针的应用往往与数组联系在一起,是最频繁的,也是最基础的 。在定义数组和函数时,系统都会为其自动分配一个指向其首地址的指针 。对于一个数组,其名称就是一个指针变量 。2、指针只是一个变量,它存储一个内存地址 。如果传入一个地址,比传入一个struct效率要高,因为少了一个拷贝过程 。3、指针能够有效的表示数据结构,能动态分配内存,能较方便的使用字符串,有效的使用数组 。4、指针直接与数据等的储存地址有关,是比较重要的 。比如,值传递不如地址传递高效 , 因为值传递先从实参的地址中提出值,再赋值给形参带入函数计算;而指针则把形参的地址直接指向实参地址 , 使用时直接提出数据,使效率提高,特别在频繁赋值等情况下 。5,C语言指针有什么用指针,说白了就是储存数据内存段的地址 。打个比方说,你家的门牌号是306,那么你家中回来一些客人,这些客人就相当是一些变量,而门牌号就说明了地址,如果张三在你家,另一个人要找到他 , 那么此时我们只需要告诉那人306,就相当于你访问一个变量时,曲线救国 , 不直接访问变量的值,而去访问变量的地址,这会带来很多方便 。由于c语言是一种比较低级的语言 , 所以包括了许多对硬件操作的部分,直接对内存进行操作会带来很多方便 。好奇怪的问题 , 指针提供了我们直接对机器内存空间的操作的方法,这也是C为什么被称为高级语言里的汇编语言的原因 。我们和机器的交互,实际上就是对机器的状态、控制寄存器读写的过程,那么你说拥有对内存空间的直接操作的方法,我们能干什么?我们对函数的调用 , 对数据的读写,也不过是指令+内存空间里的代码或者数据 , 那么指针有什么用?指针乃C之灵魂,不会用指针的人 , 没有必要用C 。操作灵活、方便;效率高;当然也有缺点,看人怎么用 。没有绝对 。当指针是一个简单元素的地址时 , 当然没必要向你题中那样表示,直接把0赋值给a 。但是当数据元素不再是简单类型的 , 而是结构体,联合体之类的 , 那么指针就大有用处,指针表示的是一个复杂元素的地址,这个地址内可以既有数据,又有下一个元素的地址 。或者在邻接表里面,一个数据元素的指针更不是那么简单而且用指针访问数组特别是二维数组比较方便 。C里面函数都只能返回一个值,如果你的函数要返回两个值 , 那就要用指针了,把变量地址传进函数,然后把希望通过函数操作后想要的值存进传进来的变量地址里面 。当然函数可以返回数组,结构体,但是你看多了你就知道,没有人会这么做的,都返回指针 。试想如果我有一个1万个元素的数组,你会把它整个地传进一个函数里面或者整个地返回出来吗?C语言里面都是传值的,就是说传进函数的参数值首先被复制一边赋值给形式参数 , 你想想1万个元素,够呛咯!但是有指针就好多了,我们可以把指针(数组的第一个元素的地址)传进函数里面 , 有了开始地址,函数就知道东西在哪儿,就直接去那儿操作就可以了 。单凭这一点,你就可以知道指针的威力 , 当然你也知道了指针一个很大的用处就是用于函数之间参数的传递与返回 。指针就相当于一个代理一样,通过代理你知道了你要的东西在哪儿 , 你去那个地方就可以了,而不是需要把东西整个地板到你面前 。创建数据结构的时候用,用处很大

    推荐阅读