指针漫谈(二):指针的美

来源:互联网 发布:北京华信数据恢复中心 编辑:程序博客网 时间:2024/05/01 08:30

       突然在看到strlen()函数的原型的时候才意识到指针是如此之美。正是因为有了指针这个工具,才成就了C语言,举例来说:

       strlen()函数在标准库中定义的时候就是在调用函数的参数中定义了指针变量作为形参,所以在使用strlen函数的时候才会显得非常便利。简单来说,数组,字符串在传递给函数的时候不是直接将整个字符串的值复制或者是将数组的值一个个copy给函数的形参,如果反过来的话,就会耗费计算机本身的内存。但如果使用指针,函数调用的时候传递给被调函数的是一个地址,即你定义的字符串或者数组的变量名。形参列表的指针变量就和地址能一一对应起来,这样一来的话,在被调函数内部,只需要将所处理数据的地址按一定的规则作出相应的变化,指针就可以访问到字符串或者数组中的每一个元素,进而返回一个你所需要的值。我们可以想到所有字符串处理函数无非就是使用同样的道理,用不同的算法来实现我们调用函数的功能。其实也相当于被封装起来的,便于程序员使用,实质却是指针起的作用,例如strcmp(),strcat(),strcpy()都是同样的道理。

     引申到其他面向对象的语言,其实从语言本身来讲应该是用指针,只不过被封装起来了,c给了程序员足够的信任,程序员可以根据实际需求使用指针完成某些其他变量或者函数不便于完成的任务,面向对象其实就是你不需要明白函数的实现方式,只需要用它,我想这就是为什么是面向对象的原因吧。

     以上所述,或许有诸多不严谨的地方,请有识之士斧正。

0 0