C不同于java的最大区别在于C是面向过程,而java是面向对象。刚开始我也搞不清到底区别在哪里?之后我就似乎有点明白了,C语言在编程过程中没有如同java一般有类和对象的存在。在java中我要实现某一个功能我就必须声明一个类(当然也可以在主类里面实现,这里是指不在主类里想要实现某一个功能),比如person类,我要使用这个类就必须new出一个对象来使用其中的成员变量和成员方法。而在C中就没有这么多,C中只需要存在主main函数与其他函数就行了,比如我声明一个
int fun(int m),
此函数是在头文件里面,记住一个C程序中只允许存在一个main函数,不然在用vc++6.0编译过程中会报错。这点跟java是相同的,毕竟程序的入口必须只有一个,不然多个入口的话,会使软件不知道该进行那个,会产生矛盾。这个在头文件里的fun函数,我只需要在main函数存在的源文件的中,进行宏定义#,我就可以直接使用这个方法了。的确看起来真的很方便。 这个宏定义#让我想到了,html中外部引用css和js。其实原理是一样的。 C的语法和编程风格其实与java是没有本质的区别,比如基本的循环结构,选择结构,顺序结构都可以满足基本需求了。但是让我感觉有点麻烦的是,在C语言中我想要使用一个变量,我就必须先声明这个变量我才能使用这个变量。比如for循环中,java是这样定义的
for(int i=0;i<10;i++)
,而C中我就必须先声明int i,而不能在条件表达式里面声明。还有我遇到的一次,C中居然不能删除一个int类型数组中指定的元素,比如
int a[3]={1,2,3};
我想删除元素2,C居然做不到。它只能怎么做呢,把元素3赋值给元素2,即
a[1]=a[2]
(C与java一样,数组下标从0开始),然后把数组大小减一。真的让我骂了一句C,你真蠢。而java中是有现成的方法可以删除指定元素的,很方便。 这是C中独有的,java没有。想要把C学好,就要看你能不能把指针运用的十分熟练。我想我还差很远。 学了将近1个月的C,让我觉得C最好的地方,在于它的自由性。真的很自由,没有java中那么多约束。 有些人认为学了java再去学C,是一件很容易的事情。 我只能告诉你,路还长,不要那么快停下脚步。 最后我想把指针比喻成暗恋,不管我如何改变自己(地址),也无法波及到你的想法(数值)。