c 比java难在哪里_为什么说 C 语言比 Java 难?

c语言本身很简单,才几个关键字。

c比较麻烦的就是 至少必须完全理解c的每个关键字才能不踩坑。

1 c过于古老,想要用好必须要理解c的编译连接方式,(比如#include 到底是什么意思,这玩意可绝不是import),踩过符号的巨坑,踏过make等的河流,了解编译和连接的区别。。。这些就足够新人纠结;

2 c很灵活,要求的预备知识比较多和相对底层。比如数组和指针的关系,比如结构体赋值到底发生了什么等;

3 c还有二义性特性,这样尤其会让新人觉得困难。c很多时候无法简单的从代码立即理解意思。

比如char** 是什么?指向一个字符的指针的指针,也可能是字符串数组,这些特性尤其会让初学者迷惑。还有麻烦的函数指针,少许复杂一点解读就要了老命。

4 c指针本身很简单,用起来有很多需要注意的地方,比如释放不释放等等都需要一些经验,这些经验书上往往没有,踩坑几次以后新手往往就知难而退。

5 c语言本身(加上标准库)能做的事情不多,往往需要配合os的库,这个库就是巨坑了。。。

同理,c我们不比较java也不比较c++,和pascal相比。c缺少pascal的string,c的数组和指针一致导致数组无法直接获取长度,这方面pascal就“高级”一些。同样pascal一般都是吐槽它的begin/end ,几乎没听过有人吐槽pascal难的。

-----------------------

回头看看java,java相对于c,简单在于一眼看过去就能知道是什么,而且上面的问题都不存在。。。连第三方库都有友爱和谐的maven帮你搞定。

String s=“abc” 它就是个字符串,不可能越界来个缓冲区溢出,不需要管释放。直接+就是拼接,美好。这些其实都是java让人觉得简单的部分。

还有java几乎和os无关,自己就差不多是一个os,不太需要关心平台的东西,直接简单粗暴jdk即可。这个很省事儿。

但是java一些稍许深一点的东西就并不简单。java没有struct,对象都是引用,初学者这方面很容易踩坑。

其他java就是知识广度要求比较高,比如。。呃。spring全家桶。。。。

暂时就写这么多

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值