对于 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到底是代表那个函数的地址 还是指向那个函数的地址,这个不知道 很模糊