c语言函数指针优点 c语言指针函数调用例子

C语言指针的好处

指针一大特点是,对一个函数而言能实现多个返回值!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、栾城网站维护、网站推广。

同时指针在某些情况下与数组有共通之处!

它能直接对一个内存进行操作,在加密技术上也有不小的作用力!

…………还有很多,程序写的越多就越会感觉指针的重要作用的。

字符串处理的头文件:string.h(希望对你有帮助)

指针的优越性在哪?

掌握指针的使用,可以使程序简简洁、紧凑、高效。其实指针使用起来更简洁一点,它能直接访问内存单元地址。

以下是摘录的:

1.指针是C语言中一个重要的组成部分,使用指针编程有以下优点:

(1)提高程序的编译效率和执行速度。

(2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。

(3)可以实现动态的存储分配。

(4)便于表示各种数据结构,编写高质量的程序。

2.我举个例子,例如你申请了10个int变量的数组,一共是 sizeof(int) * 10 那么多字节的空间。但是你需要从 第二个自己开始操作,而不是从下一个int开始(下一个int应该下一个int变量的地址,也就是偏移sizeof(int)个字节),这时候没有指针你根本无法做到。

为什么要做这么奇怪的操作?为什么申请了10个int变量,但是操作时却从第二个字节开始,而不是第二个int变量开始?因为很多算法,包括加解密、压缩、图形图像、科学计算、网络通讯……领域,都需要按字节访问源数据,而不是根据你申请的变量类型来访问。

C语言 指针做函数参数 的优点

首先你要认识函数传参是怎么进行的

函数传参是复制形的,举个例子说:

void modify(int a)

{

a++;

}

void main()

{

int a=5;

modify(a);

printf("%d",a);

}

这个程序的答案还是5。为什么?

因为当调用modify(a)时,在执行modify函数时,是另外开辟了一个内存空间,将main中a的值复制过来,modify函数中所有的操作都是相对于这个新开辟的内存空间而言的,对原来的a没有任何改变。

现在就来说说指针,如果用指针传参的话那就完全不一样了,指针(pointer),说白了即是指向变量内存地址。同样上面的例子:

void modify(int * a)

{

(*a)++;

}

void main()

{

int a=5;

modify(a);

printf("%d",a);

}

这个答案当然是6

因为你传进去的是a的地址,所以在modify函数中的操作都是对a地址上的内容进行操作,即是操作a所以modify函数不用返回这个数,main中a的值也会改变。因为大家都是操作同一个内存空间,而上面不用指针,modify操作的是另一个新开辟的内存空间,只是这个内存空间初始值和a一样。

现在来说说传参,其实你“为什么函数参数是字符串的多用指针?” 那句我不是很明白,C中的字符串传参好像就指针一种形式(除非用结构体)。

何时用指针,何时用拷贝。当传的参数是一个结构体,而这个结构体比较大,这时最好用指针,因为如果用拷贝的话,单单花在拷贝的时间就要浪费很多,而如果这个函数经常被调用,那么这效率问题就出现了。

你在子函数中要对你的主调用函数中变量进行操作时也可以用指针做参数,这样子函数就可以不用return 如果不是用指针的话,就要再子函数的未尾加上一条return x;把这个数返回当返回值。

多看点书,多写点程序,刚开始学都会对指针比较迷茫。写多了,自然而然就懂了。


当前标题:c语言函数指针优点 c语言指针函数调用例子
本文来源:http://myzitong.com/article/doppjeo.html