1) 执行效率高。Java是编译出来的是字节码而不是计算机可直接读的指令,执行时候还要再翻译一遍。虽说这个翻译过程还是很快的,但对于性能要求比较高的系统级软件仍然是效率优先,不能使用类似Java、C#编译出的字节码程序。
2) 指针功能非常强大,一些像树、表这样的数据结构离开指针可谓寸步难行。而且指针操作非常高效。但指针操作对于程序员来说很容易在使用中出错,因此Java不支持指针。再加上上面说的效率问题,所以没有指针的Java不能用来编写系统级应用。
3) 移植性好,使用C语言编写的程序可以非常方便地移植到另一套指令系统的计算机上。参见Unix和Linux。
为什么不用效率更高的汇编语言?因为用汇编语言编写程序极其费时费力,而且不便移植。所以大多数情况下用的是嵌入式汇编,即高级语言程序内部对于时间或空间要求非常苛刻的一段使用汇编语言书写,但整个程序仍以如C这样的高级语言为主。况且汇编语言是跟指令系统紧密联系在一起的,不方便移植。