c语言为什么要有指针呢?

c语言和c++为什么要有指针呢,能否写两段简单的程序来对比用指针和不用指针时解决问题的难易程度,和用指针后可能操作不当带来的问题。谢谢。邮箱2453316506@qq.com
希望用程序说话,体现在程序中让人一下就明白了。谢谢
期待最佳答案,拜托了,期待跟详细的解释。

因为指针通过地址传递参数,如果不用指针传送速度慢。

在没有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);   

参考资料来源:百度百科—指针

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26
很多情况可以用到。这需要在编程过程中形成一种思维。
如 将一个结构体传递给一个函数。
如果不用指针,传送速度慢,如果通过指针,只要传递一个地址。
struct example
{
int i;
int j;
int f;
char a[1024];
};
void main()
{
struct example ex;
fun(&ex);//将结构体ex的地址传递给函数fun
}
fun(struct example *p)
{
}本回答被提问者采纳
第2个回答  2013-09-03
C语言中就指针最难,指针主要是处理地址不像数组那样挨着好找的情况,把下一个数的地址给上一个保管,才能一个接着一个找到。不过我觉得很烦了,最好还是学java,高级的,更符合人
第3个回答  2013-09-03
指针通过地址传递参数,可以双向传递值。
如果你是计算机专业的学生,看《高级语言程序设计》里面有详细介绍二者的区别,也有程序对比(两数交换的函数)。我比较懒,你就靠自己了。
第4个回答  2013-09-03
指针是C语言的精华,不会指针,相当于C语言根本没学明白!等你到嵌入式系统的编写 或者 上位机APP的程序编写的时候就知道了 C语言说到底是一种交流语言 类似于英语一样

我是c语言初学者!我想请教下!在c语言中为什么要引入指针这个概念!它的...
C语言引入指针,是为了直接操作计算机内存。这个功能使得可以用C语言写操作系统、驱动程序之类系统底层的程序。指针的微妙之处:1、每个指针本身有一个对应的内存单元,这个内存单元中可以存放别的变量、函数等等的内存地址。2、指针是有类型的。如char*,int*,float*,double*,void*等等。3、指针类型,...

c语言指针的作用
该语言指针的作用如下:1、动态内存分配:使用C语言指针,程序可以在运行时动态分配内存,这使得程序能够更灵活地处理各种大小和类型的数据。2、修改原始数据:通过C语言指针用户可以修改指向的数据,这对于很多算法来说非常重要,尤其是涉及到数组或列表的算法。3、实现复杂的数据结构:通过使用C语言指针,用...

C语言指针的作用有哪些
1、指针就是地址,它和数组联系起来,可以方便的取数组中的值。2、可以作为函数的引用。指针的本质:一种复合的数据类型。指针包括两个方面:一个是它本身的值,是一个内存中的地址;另一个是指针所指向的物,是这个地址中所存放着具有各种各样意义的数据。

c语言为什么要有指针呢?
因为指针通过地址传递参数,如果不用指针传送速度慢。在没有C++语言的年代,没有面向对象、模板的语法支持,struct中还不能定义函数,用C语言想要对业务功能(算法,此处即指函数)进行抽象,不想依赖具体的数据结构\/数据类型,此时就必须用指向函数的指针来实现抽象与具体的分离,该函数的入参可以是void*...

C语言——什么时候用指针
1.什么时候都可以用指针,因为用指针的效率比用变量高。2.当一个函数要返回1个以上的运算结果时,就必须用指针,因为一个函数只能返回一个值,更多的得用指针“带回”。3.操作数组时,用指针不仅方便得多而且代码时效很高。4.操作文件时,不用指针寸步难行。5.利用指针可以简化函数调用的书写过程,...

计算机c语言中的指针学了有哪些用处
在计算机C语言编程中,指针的使用能够显著提升代码效率与灵活性。它能够快速访问数组元素,比如要访问数组的下一个元素,只需对指针进行自增操作,访问上一个元素则自减,要跳转到数组下一行则自增指针行数,而要回到上一行则进行相应的减法操作。这种特性特别适用于快速处理图像,比如在处理1024x768像素的...

c语言指针是什么
1、c语言指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址。指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(pointsto)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。2、因此,将地址形象化的称为...

C语言的指针有什么用?编程不一定要用指针吧?请高手指点一下。_百度知...
一是不用把整个数组传到其他地方(复制,浪费空间和时间),二是效率很高。在追求效率和空间的时候,就必须得考虑指针。如:嵌入式系统或者软件 总之,不要害怕指针,指针有指针的规律,刚开始学习,比较难懂,没关系,慢慢就熟悉了。编程就像数学,越练习,越能写出好的代码。希望对你有帮助。

c语言中的指针是什么?
表示成员选择(指针),选择结构体的成员变量。1、结构:运算符 -> 是指向结构体成员运算符,结合方向为自左向右。2、用法:对象指针->成员名。举例说明如下:

C语言调用函数互换ab,为什么要用指针。不用指针能行吗?注意,是调用函 ...
这是 C 语言 本身 特性 规定了 的。你只要记住 这点: 形参 必须用指针,这样才能把 通过 函数加工 后的 数值 带回来。通过函数 互换后 的a,b,才能被带回。至于“为什么”,可以不去追究,它的理由 无非 是什么 地址啦,值啦之类,时间长了,自己会记混淆。其它语言,例如 fortran 语言,...

相似回答