https://pic4.zhimg.com/80/v2-88dcb0c80e562f738ef3e4dcdd0f7df4_hd.jpg
很大原因在于C入门不容易有成就感。
比如Python,学一阵子就可以搞出一些酷炫的东西了,这往往让初学C的人艳羡。
不过这里面也有两方面问题要指出来:
- Python之所以让开发者欲罢不能,很大程度上就来自于它丰富的第三方库,而学习这些Library的使用似乎从来都是玩Python的人一上手就会接触的;反观C入门,也不是说它就不能搞酷炫的东西,只不过现在大多C的入门教程从头至尾头文件都只引入<stdio.h>,你能指望一个DOS下的黑框炫上天?所以说如果学习方法得当,初学C也可以做出一些有意思的小玩意,给自己增加一些自信心和成就感。推荐一个教程:https://jq.qq.com/?_wv=1027&k=578W8uh
- 虽然初学者对自己的程序是否跑的足够快并不是那么在乎(Python比C慢得多)。但试想,如果像题主一样现在还在上学阶段,原本有大把的时间可以去弄清楚指针、内存管理等一些较为底层的知识,就因为一味地追求所谓的炫酷而没有抓住机会,工作之后真还能静下心去学习这些理论吗?事实是C玩的溜的人转战Python,第一次听说GC这个概念会爽歪歪,而一开始学习Python的人再去学C,第一次听说Stack和Heap的概念会一脸懵逼。
所以,如果你还是不愁吃穿的上学阶段,学C也没什么不好的,像c primer plus这种经典到“啰嗦”的书工作之后还真不一定有时间去潜心研读;
C语言(以及 C++)基乎是现今计算机软件的基石,无论是操作系统、其他语言的编译器,甚至电饭煲里的单片机运行的程序,大多数是用 C/C++ 编写的。
如果你不是怀着功利主义去学习编程,C 语言其实是一个不错的编程入门语言。
首先,C 语言相对许多现代语言来说是十分简单(或者说是原始)。它没有内置面向对象、函数式编程、元编程等编程范式的功能,只有30来个关键字,少量的概念。可以比较短时间内完整地学完这个语言。
第二,学习 C 语言适合同时学习计算机架构,各种数据类型(包括重要的指针)都是直接能和计计算机架构的概念对应。语言里面没有魔法,都是很平凡直观。你会知道数据在内存中是怎么存储的,占多少个字节。很多语言的抽象层次更高,不能做到这一点。
第三,很多语言都有类似 C 语言的语法(如 C#、Java、JavaScript),例如花括号、分号、注释、if、for、while、do while 等等。用 C 语言入门编程后,这些知识可以过渡至其他语言。
没什么不可以的。以前我不推荐是因为那个时候读计算机的人少,被劝退了就不够用了。现在不一样了,学生泛滥,劝退九成都没问题,剩下一成完全够用。我推荐C语言入门。