C和Java的关键差别简要介绍

C和Java的相同点

我们知道Java语言和C语言基本语法类似,所以可以说Java是基于C的,两者有很多类似之处。
两者都是命令式的语言,例如,有数据类型、变量和控制语句等。
在C中基本数据类型是整数(包括短整数和长整数)、字符和浮点数等。使用数组、结构体和联合,可以构造组合数据类型。
C语言中的控制结果和Java类似,包括if、switch、for以及while等语句。
总之,在这两个语言中,函数和参数大致相同。

不同点

C语言中有而Java中没有的特点是显式指针。什么是指针?指针是一种指向(即包含对象的地址)一个变量或数据结构的变量。
考虑以下例子:第一个赋值语句 将字符c的ASCII代码存到变量c1中。第二个语句将c1的地址赋给指针变量p。第三个语句将由p指向变量的内 容赋给变量c2,这样,在这些语句执行之后,c2也含有c的ASCII代码。在理论上,指针是输入类型,所以不 能将浮点数地址赋给一个字符指针,但是在实践中,编译器接受这种赋值,尽管有时给出一个警告。指针是 一种非常强大的结构,但是如果不仔细使用,也会是造成大量错误的一个原因。
C语言中没有的包括内建字符串、线程、包、类、对象、类型安全以及垃圾回收。在C语言编程中,分配的存储空间都是程序员明确分配和释放的,通常使用malloc以及free函数。

char c1, c2 , *p; 
c1='c'; // 1
p=&c1; // 2
c2 =*p; // 3

为什么C语言适合写操作系统?

在操作系统中,中断发生的时候,操作系统可能只有若干秒去完成特定的操作,否则就会丢失关键的信息,所以,在任意时刻启动垃圾回收机制是不可以接受的。C语言由于-全部由程序员控制内存这个特性,使用的是明确的指针,使得C语言对编写操作系统非常由吸引力,当然C语言编写操作系统的合理性不仅仅是因为这个,有兴趣可以查阅相关资料。