在c语言中指针变量有什么实际的作用

2020-11-23 09:31:55 字数 5118 阅读 5951

1楼:想不到名字啊呜

构建动态数组啊...使被调函数修改主调函数的变量啊...获取***的地址啊...

太多了,多到我都忘的差不多了...

没有指针c就不叫c了,可以说是c里面最重要,也是最难学的部分嘛,主要还是考试要...

c语言的指针有什么实际作用?

2楼:匿名用户

指针实际上就是一个内存地址,比如一个函数指针,就是一个函数的入口地址,通过这个地址,系统就可以找到这个函数的位置并调用它。简单地说指针就是指向变量和对象的地址。 指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。

还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。 以上还只是指针的初步应用,随着你在c++学习上的逐步深入,你会发现更多的用途的。

3楼:手机用户

那是函数指针,比如

int (*pfun)(int a,int b);

函数指针没有实际意义,它指向的函数才有意义。

c语言中指针变量与普通变量的区别是什么?

4楼:与子如初见

int a;

int *p = &a;

指针p是一个变量,里面存的是一个地址,这个地址是a的地址。通过取值运算符*就可以用p访问a。指针变量使用起来灵活,一个指针变量只占四个字节,但是它可以访问类似结构体,链表,数组等多数据集合,而且在访问这些变量的时候是对内存直接访问,执行效率更高,知识需要慢慢积累,用得多了你就知道指针的好处了。

让指针指向下一个很简单:

比如说int a[10] = ;

int *p = a; //那么现在p指向的就是数组a的第0个元素,*p的值就是1

p++;//执行完这句p就指向了数组a的下一个元素 ,也就是数组a的第一个元素,*p的值就是2.

5楼:殳德候寄云

1、指针变量是变量的一种,指针变量的值是地址(也是整数),普通变量的值是整数、实数或者其他类型。指针变量的主要作用是修改其他函数的局部变量和访问数组。指针变量需要额外的空间存放地址,由于指针变量是间接访问所指对象,所以比起直接用普通变量名字访问所指对象而言,速度稍慢。

2、例如:int

a=5;

int*p

=&a;

指针p是一个整型指针变量,里面存的是一个地址,这个地址是a的地址。通过取值运算符*就可以用p访问a。指针变量使用起来非常灵活,一个指针变量只占四个字节,但是它可以访问结构体,链表,数组等多数据集合,而且在访问这些变量的时候是对内存直接访问,执行效率高。

c语言中“指针”和“指针变量”的区别是什么??

6楼:大野瘦子

1、概念不同

“指针”是概念,“指针变量”是具体实现,指针也是一个变量,所以需要进行定义,而对于指针的定义,与一般变量一样。

2、 存放地址不同

一个变量的(内存)地址称为该变量的“指针”,通过指针能找到以它为地址的内存单元。而指针变量是用来存放另一个变量的地址的(即指针)。

指针和指针变量的关系

1、指针就是地址,地址就是指针。

2、地址就是内存单元的编号。

3、指针变量就是存放内存地址的变量。

4、指针和指针变量是两个不同的概念,但要注意的是,通常我们叙述时会把指针变量简称为指针,实际他们含义并不一样。

注:指针里存的是100. 指针:地址 - 具体。

指针里存的是地址,指针:指针变量 -可变。

指针的好处:

1、直接访问硬件

2、快速传递数据(指针表示地址)

3、返回一个以上的值返回一个(数组或者结构体的指针)4、表示复杂的数据结构(结构体)

5、方便处理字符串

6、指针有助于理解面向对象

7楼:盖辜苟

用例子来看一下。

int a=3;

int *p;

p=&a;

现在来看一下。a=3这个式子先解释一下

等式右边是常量,左边是变量。

同理的p=&a,左边的是指针变量,右边的是指针

指针的基本概念:为了区别内存的不同位置,内存被分成字节,内存的全部字节顺序地赋予一个称为地址的编号。程序中的变量将在内存中占据一定的内存字节,在这些字节中存储的数据信息称为变量的内容。

一个变量占用连续的若干个内存字节时,最前面的一个字节的地址就作为该变量的地址。指针就是内存地址,是变量的地址,或函数的入口地址。变量的地址在程序执行时,起着非常重要的作用。

当计算机在计算含有变量的表达式时,计算机按变量的地址取出其内容,并按变量的地址将计算结果存入到变量占据的内存中。

如**:  int x=l;  x=x+2;  其中语句“x=x+2;”中的第一个x涉及到变量x占据的内存,第二个 x是引用变量 x的内容。该语句的意义是“取x的内容,完成加上2的计算,并将计算结果存入变量x占据的内存中。

”指针变量和它所指向的变量:在c语言中,地址也作为一种值,能被存储、比较、赋值,并称地址数据为指针类型,而称存储地址值的变量为指针变量,简称指针。c程序可用运算符&取变量的地址,如表达式&x的值就是变量x的地址。

程序除能按名引用变量外,也可利用变量的地址引用变量。按变量名引用变量称为直接引用,而将变量a的地址存于另一变量b中,借助于变量b引用变量a称为对a的间接引用。

定义指针变量的一般形式为:  类型 * 指针变量名;  或  类型 * 指针变量名=初值表达式;  其中,指针变量名是标识符,指针变量名之前的符号“*”,表示该变量是指针类型的。而最前面的“类型”,表示该指针变量能指向变量或函数的类型。

初值表达式是一个地址表达式,如表达式中有某变量的地址表达式,则这个变量应是前面已定义的。

在c语言中,当定义局部指针变量时,如未给它指定初值,则其值是不确定的。程序在使用它们时,应首先给它们赋值。误用其值不确定的指针变量间接引用其它变量,会引起意想不到的错误。

为明确表示指针变量不指向任何变量,在c语言中用0值表示这种情况,记为null。

如  ip= null;  也称指针值为0的指针变量为空指针。对于静态的指针变量,如在定义时未给它指定初值,系统自动给它指定初值0。

指针变量取程序对象的(开始)地址值,不能将一个整型量或任何其它非地址值赋给一个指针变量。另外,指针变量对所指向的对象也有类型限制,不能将一个不能指向的对象的地址赋给指针变量。

如有以下定义:  int i=100,j,*ip,*intpt;  float f,*fp;  以下**如注释所叙。  ip=&i;/*使ip指向i*/  intpt=ip;/*使intpt指向ip所指变量*/  fp= &f;/*使fp指向正*/  ip=null;/*使 ip不再指向任何变量*/

在计算机科学中,指针(pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为"指针"。

意思是通过它能找到以它为地址的内存单元。 在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。

作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。

指针是程序设计语言的一个重要概念。指针在c程序中有以下多方面的作用:

利用指针能间接引用它所指的对象。

利用各种类型的指针形式参数,能使函数增加描述能力。

指针与数组结合,使引用数组元素的形式更加多样、访问数组元素的手段更加灵活。

指针能用来描述数据和数据之间的关系,以便构造复杂的数据结构。当一个数据a要关联另一个数据b时,在数据a中增加一个指向数据b的指针就可实现数据a关联数据b。结合系统提供的动态分配存储设施,又能构造出各种动态数据结构。

8楼:

比较严格的说法是这样的:

系统为每一个内存单元分配一个地址值,c/c++把这个地址值称为“指针”。如有int i=5;,存放变量i的内存单元的编号(地址)&i被称为指针。

“指针变量”则是存放前述“地址值”的变量,也可以表述为,“指针变量”是存放变量所占内存空间“首地址”的变量(因为一个变量通常要占用连续的多个字节空间)。比如在int i=5;后有一句int *p=&i;,就把i的指针&i赋给了int *型指针变量p,也就是说p中存入着&i。所以说指针变量是存放指针的变量。

有一个事实值得注意,那就是有不少资料和教科书并没有如上区分,而是认为“指针是指针变量的简称”,如对int *p=&i;的解释是:声明一个int *型指针p,并用变量i的地址初始化;而严格说应该是声明一个int *型指针变量p才对。所以有时看书要根据上下文理解实质,而不能过于拘泥于文字表述。

9楼:大美人

区别在于:

1、“指针”是概念,“指针变量”是具体实现。指针也是一个变量,所以需要我们进行定义,而对于指针的定义,与一般变量一样。

2、一个变量的(内存)地址称为该变量的“指针”,通过指针能找到以它为地址的内存单元。而指针变量是用来存放另一个变量的地址的(即指针)。

3、指针和指针变量是两个不同的概念,但要注意的是,通常我们叙述时会把指针变量简称为指针,实际他们含义并不一样。

扩展资料

指针与c语言关系:

大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有c语言的指针才能算指针。

指针变量概括:

1、存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。

2、如果一个指针变量存放的是某个对象的地址,则称这个指针变量指向该对象。在c++程序设计中,指针变量只有确定了指向才有意义。

10楼:战平卉赫宏

c++中指针是一个地址,是指向一个数据的存储地址,如int

a;int

*p=&a,即指变量a的地址;而指针变量是把存放数据的地址存放在一个变量中,先找到变量中的地址,再由此地址找到数据,所以说基本上是一样的。

C语言的指针有什么实际作用,C语言的实际作用是什么?

1楼 匿名用户 指针实际上就是一个内存地址,比如一个函数指针,就是一个函数的入口地址 ,通过这个地址,系统就可以找到这个函数的位置并调用它。简单地说指针就是指向变量和对象的地址。指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。 还有在很多时候变量,特别是对象的数据...

c语言中数组名和指针变量的区别,C语言中数组名和指针的区别

1楼 销 数组名除了sizeof会返回数组大小,其他的实况下是相当于一个指针常量无区别的 指针常量也就是说,不能改变数组名的值,比如int a 10 a a a a 10等都是非法的 c语言中数组名和指针的区别 2楼 匿名用户 数组在当作参数传递时,可以当作指针 当然,参数传递相当于赋值操作,所以用...

C语言中的“行指针”与“元素指针”有什么区别

1楼 键盘雀跃 int a 4 1 2 3 4 a 0 a 1 a 2 a 3 a是一维数组名,代表数组的首地址 也就是a 0 a 1 指针移动2个字节,指向下一个数组元素,就是a 1 int a 3 4 a 4 或a 4 或a 3 4 都可以表示行指针 操作a是二维数组名,代表二维数组的首地址,也...