请问C语言中 指针是什么?有什么作用?请用通俗的语言解释

作者&投稿:谏版 (若有异议请与网页底部的电邮联系)
请问谁能用比较通俗的语言讲一下c语言中的指针?~

程序运行的时候代码和数据放在内存中,现在把内存比作一个宾馆,宾馆有很多房间组成,代码和数据都存放在房间中,如果我们想找某个数据或代码,只要知道它所在的房间号码即可,这个号码就是所谓的指针。
内存是有很多存储单元(每个存储单元长度为一个字节)构成,每个存储单元都有一个地址,代码和数据都存在这些存储单元中,如果要找到内存中的数据或代码,只要知道它所在的存储单元地址即可,为了能处理这些地址值,这才引进了指针这个数据类型,也就是说指针专门用来处理内存地址的。就像是为了能进行整数运算引进了int 整型类型、为了处理字符引进了char字符类型一样,这样说能明白吗?

这两个好像都不行吧,第一个多了一层指针,第二个少了一层指针

首先你要明白指针的作用,他只是作为一个代号来使用,就如同一个人的绰号一样,或者是如门牌号
c中,每一个变量都有一个内存空间来存储他的数据,二这个内存空间是有一个地址来标示的,知道这个地址,就可以对这个变量进行操作,编辑器也是这么干的,编译成exe后,是没有变量名的存在的,只有地址来标示
一般的变量,对应的地址中存储数据,而指针变量的地址空间中存储的数据是一个地址的标示
如一般的变量,int a=5;那么a这个变量空间中的数据时5,假如a变量在内存中的地址0000 1010
那么给予int *p=&a;的话,那么p变量的内存空间中存储的数据就是0000 1010这个数据,也就是一个地址,但p变量申请的内存空间可能是0000 1016,也就是说内存空间中00001016这个地址中存储的数据时0000 1010,二内存空间0000 1010这个地址中存储的数据时5
访问p就是访问p的内存空间00001016,访问*p就是访问p指向的空间0000 1010
这样应该明白内存空间和数据之间的关系以及指针的作用了吧

接着说你的程序,其实就是一个子函数参数的问题
子函数有几个特性
1、只能返回一个数据,多个返回只能用全局变量或者指针(数组名也是指针)
2、实参和形参不在衣蛾地址空间中,除非用&取地址(这是一个指针的用法)

你的程序,返回两个数据,并且不用全局变量,那么只能用指针
程序只能有一种void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}
别的方式都不对
这是交换ab指针指向的空间中的内容,而不是ab指针本身
道理是不在同一个内存空间中,交换指针本身不能影响到主函数的数据
用这个&也是一样的道理

通俗的说,就是你家的门牌号,

 简单地说指针就是指向变量和对象的地址。
  指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。
  以上还只是指针的初步应用,随着你在C语言学习上的逐步深入,你会发现更多的用途的

C语言中,指针变量代表的是一个地址,这个地址可以是变量的,也可以是涵数的,数组的等等,这样我们通过指针变量就可以访问到变量地址中存放的内容,或是调用函数等,它非常灵活,具体的好处在编程中你才能慢慢体会到的,好好学习吧。

在电脑里定义一个量时会在内存中申请一的地址来存放这个值,
而指针就是一个存放值的地址的变量
求采纳




达日县19644674646: C语言里的指针是什么意思,起什么作用 -
强依万祺: 1:指针是一个地址,指向的是个类型: 我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用的的长度问题,可以使...

达日县19644674646: 请问C语言中 指针是什么?有什么作用?请用通俗的语言解释 -
强依万祺: 通俗的说,就是你家的门牌号, 简单地说指针就是指向变量和对象的地址. 指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递.还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率. 以上还只是指针的初步应用,随着你在C语言学习上的逐步深入,你会发现更多的用途的

达日县19644674646: C语言中指针是什么? -
强依万祺: 1.指针就是1个变量,他也是一个存放内容的内存空间. 2.指针存放的内容是另一个内存空间的起始地址.不同于一般变量存放的就是变量值. 3.取值操作符*对于指针的作用是取得指针变量存放的内存地址里面的值,不加*取出的是指针变量存放的值(就是一个内存地址)上面3步,step by step 你就理解了.

达日县19644674646: 在C语言中什么是指针?指针是干什么用的?,有什么意义? -
强依万祺: 写简单的程序的话不用指针也行了吧. 比如, int a = 2; int* p = &a; *p = 3; 这里a是一个地址(编译后), 为了读写这个地址单元里的东西,可以用p,也可以用一般变量a. 对于指针的便利,我现在能想到的,可能是: 函数A调用函数B时,把一...

达日县19644674646: c语言中函数指针是什么 有什么用 举个实例 -
强依万祺: 函数指针是指向函数的指针变量. 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数.函数指针有两个用途:调用函数和做函数的参数.函数指针的...

达日县19644674646: C语言的指针有什么用? -
强依万祺: c提供了两种访问变量的方法.通过变量名和通过地址.用指针就是通过地址来引用变量的.但地址也必须存储在内存中.所以就用指针变量 来存储变量的地址的.

达日县19644674646: C语言中的指针是什么意思? -
强依万祺: 指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存(Register).指针一般出现在比较近机器语言的语言,如汇编语言或C语言.面向对象的语言如Java一般避免用指针.指针一般指向一个函数或一个变量.在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数的值. 大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上.因此,说指针是c语言的灵魂,一点都不为过.简单比方……比如你是一个变量,那么你家的地址就相当于是你的指针, 我可以通过找到你家地址而找到你.

达日县19644674646: C语言里面指针到底有什么作用啊 -
强依万祺: 用处大了啊.楼主.你学了指针以后就会知道了.比如说和结构体的结合使用.使得文件操作.以及链表的应用更加方便.指针式直接对内存的操作.很多情况都很方便.但是刚开始学的话也容易出错.比如说在与函数结合的时候.总之楼主努力学习吧.见得多了就知道了.其实并不太难.(*^__^*) .不知道能不能帮上你...

达日县19644674646: C语言中的指针是什么? -
强依万祺: 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序.指针极大地丰富了C...

达日县19644674646: C语言的指针,又什么用?能用通俗的话讲讲什么是指针吗?最好结合例子 -
强依万祺: 在C语言中出现的数据都是存储在内存地址中的,为了方便的使用这些数据,我们定义了指针!例如:有这样一个整型变量:int a=1;int pointer=*a;那么pointer就是获得变量a使用权的引线!通俗的地说,指针就是指向地址空间的变量.当然,指针是很复杂的,比如高级的用法:指向指针的指针!不过指针使用不当会降低程序的可读性!指针最著名的用途就是有些函数,将实参传回,在修改形参的时候使得实际的结果改变!学好指针,对学好C语言,写出清晰的程序用处很大!在全国计算机等级考试二级考指针很多,但是三级上机和四级上机基本上不考了!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网