都说 C 语言比 Java 难。
可是 C 语言只有数据类型、运算符、表达式、输出和输入函数、程序结构、控制循环、数组、函数、指针、结构体、共同体、位运算、预处理、文件、储存这些东西。而 Java 东西就太多了, javaweb的tomcat ,html,servlet,jsp,javabean。javase 的语法,选择,循环,方法,数组,对象和类,字符串,继承和多态,图形界面,异常处理,抽象和接口,递归。javaee的 xhtml,jsp,数据库,struts2,hibernate,spring,ajax 等。
况且C语言的规则相对简单,规矩相对少。而这恰恰加大了使用难度。
围棋和象棋比较,围棋的规则相对简单,就两种棋子,棋盘上哪里都可以放子,一片子没有气就死了。虽然为了解决争议还有例如打劫之类的规则,但比起象棋兵种众多,每个兵种移动方式还不同,遇上国际象棋那种同一个兵种走路和杀人的时候步法还有差异的,动不动老王跟城堡就瞬间移动一下的规则,围棋的规则不可谓不简单。然而,AI在象棋上战胜人类是在1997年,AI在围棋上战胜人类是在去年?我觉得是否真的战胜了可能目前还存在着争议。足可见两者难度的差异。
C语言和Java也是类似的,越是规则简单的C语言越是难以掌握。
况且C语言属于底层代码,能窥探到底层,也就是说可以拿它写硬件驱动,学习c语言前面的内容比java简单但是到了后来特别是指针,链表(特别是双线链表)学到要你命,java还是比较简单的java属于面向对象语言,主要理解面向对象,面向接口,面向切面的编程思想后编程就不呢么吃力了。
综上来看,C语言在使用上的难度要大大高于Java。在学习时,因为计算机是一门使用科学,如果学了不会用,基本等于没学,所以最终还是会落到使用难度上,如果要学到能做出同类东西的水平,自然是C语言难度要大一些了。
这是我整理出来的观点,谢谢你的阅读,希望能帮到你呀