C和C++和Java的一些区别

       今天我想写一些关于我这些天所学到的C和Java的区别。这几天白天老师讲Java,可我为了考研,手里捧着《C语言程序设计》,然而我在大学里是C++入门的,故脑子里的体系结构大都是C++的。这就导致了,我现在宛如一个智障。老师每讲一个Java的知识点,我都在想C++里是啥样的,然后再看看手里的书,看看C语言又是啥样的,简直头晕。这几天我清醒了不少,所以我打算整理一下我这几的收获。

1.C是面向过程的,Java是面向对象的。Java里面有类,C里面没有,C++里面有,C++里面的结构体可以写函数,C不行。总而言之,C语言就别拿面向对象的思路写代码,等于白给。

2.C跟C++有指针,Java没有。这个显而易见。

3.Java,C,C++中,只有C++有引用传递。

4.C++的模板与Java中的泛型很像。但是还是有区别的。C++ 模板是宏命令,比如List<A> 和 List<B> 实际上是两个不同的类。而Java 泛型类中,类型 ArrayList<Integer> 和 ArrayList<String> 的对象共享相同的类,并且只存在一个 ArrayList 类。编译器实施类型约束,并且运行时没有关于泛型的类型形参的任何信息,是通过擦除 来实现的。

5.一个小细节,C里面声明数组是int a[10];  而Java中则是int[] a=new int[10];或者int a[]=new int[10]; 这就导致用习惯Java的第一种写法可能就下意识写错C的数组。QAQ

6.C语言中函数随便声明在哪都行(比如main函数在上面,被调用的函数在main函数下面),但是C++中要使用必须先声明,即,声明必须在调用上面。当然,如果C如果不声明,一旦函数有问题就会出现运行错误,反之就只是语法错误,即还是建议该声明就不要省。

7.C语言中,用数组元素作实参中,向形参变量传递的是数组元素的值,而用数组名作函数实参时,向形参(数组名或指针变量)传递的是数组首元素的地址。

发布了10 篇原创文章 · 获赞 7 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/xrn1997/article/details/97286255