对于 C语言的扩展和JAVA的重载理解

哎,又被学长看成笨蛋了  ,先前学习java,自己真是什么都要忘了,弄得自己连java最重要的概念--重载,都不知道是啥,还厚着脸皮和学长说  是函数名字一样  ,但是就是函数里面的参数和参数类型不一样,简直就是笨蛋,白学了 。然后最近再弄这个数据结构的课程设计,重新理解了这个重载  ,其实这个重载就是C语言的那个扩展。可以这样理解:一个刀子,在切水果时,就叫水果刀,在切木块时,就叫工具刀,在切菜时,就叫菜刀,但是  无论怎么样 ,他的功能是一样的,所干的事情,可以说是没啥区别。把它延伸到C语言,就是  你编得函数方法,处理int数据行,处理结构体  还行  因为最终达到的效果都是一样的  只不过 换了个类型而已。操作类似,这个就叫做C语言的扩展

至于 JAVA的那个重载:就是函数名字一样,参数类型不一样,但是参数的数量一样,二者达到的最终目标一样,你比如说  这个函数是实现加法,那么不同的类型,最终都是做了加法。

----------------------------------------------------------------------

  还有个就是  在C语言的函数参数里面也可以把函数作为参数传进去,但是这个函数传进去是有要求的,函数的参数里面必须得带有一个参数

    比如说   fun( int a,add(int)){}   这个函数名字其实就是代表一个地址  是一个指针

        如果  你想知道一个函数的地址  可以这样:  

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int (*p)();
 5     int fun();
 6     p=fun;
 7     printf("%d\n",p);
 8     return 1;
 9     
10 }
11 int fun()
12 {
13     return 1;
14 }

这个p就是一个函数指针;但是这个p到底是代表那个函数的地址  还是指向那个函数的地址,这个不知道 很模糊

posted @ 2017-03-19 17:34  小油菜1  阅读(275)  评论(0编辑  收藏  举报