c语言不适合入门,为什么大多数人不推荐C语言入门?

先来普及下C的特点:

它不作任何封装,把整个硬件、整个操作系统赤裸裸的摆在你的面前;同时它又是一种高级语言。使得它的用户不必关注太多底层细节,于是在其上无论是讨论算法、还是谈论操作系统、网络协议栈、编译原理等等,都极为简单直观。

这些特点使得C极具生命力。甚至哪怕到了现在,C仍然是最为流行的编程语言(一直和java、c++联手垄断流行编程语言排行榜前三位——而且C经常在榜首;注意C和C++是分开统计的)。

d7859c8d9d45?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

小编推荐一个学C语言/C++的学习裙【 六二六,八七一,九一六  】邀请码凌云,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

尤其是偏底层的系统级编程,更是C一家独大,除了C++别无对手。

别以为C只能做底层。真正复杂、高难度、对性能有苛刻要求的、支柱性的大项目,C仍然当仁不让、不可替代——我不知道那些说C不适合做项目的,究竟有没听说过linux,看过几个开源项目。

C实现的任何东西,无论是操作系统还是编译器,全都会以赤裸裸的算法+数据结构的面目展示在你的面前。想知道什么,只要从一个API开始跟,很容易就能搞明白——跟一跟某个硬件相关API,甚至可以帮助你准确理解硬件。

彻底学通之后,任何技术、任何架构,都能一目了然。

简洁直白、案例众多、学习资源丰富,这是C最为独特的优势。

除了C之外,你到哪里找别的、有丰富的相关开源源码及其分析资料的语言?若学到这等程度了,连计算机原理都不会,还学个什么鬼?

连个C指针都觉得难、然而却还挣扎着想入这个门的……简直不可想象。

这也就是为什么我说要先学C语言,再考虑C++或Java还是Python还是PHP的原因。

2

很多人就不明白了,既然如此,为什么知乎上大多数人不推荐C语言入门?

举个例子:

就好比学武功是先练《少林基本功》还是直接练《辟邪剑法》的问题。

这里就出现了分支,如果你只是有兴趣,想要做出一些东西来验证你的想法的话,可能《 Python 》《PHP》这样的编程语言比较适合你。

目的性不是很强的学习,很容易因为畏难,无法解决问题就选择放弃,所以建议还是选择简单一些,并且能马上看到结果的语言来学习比较好。

这类编程语言就类似于编程界的《辟邪剑法》,你可以不懂底层,没有基本功也能很快让你上手,做出你印象中程序的样子,这样可以更好地提升你的兴趣并且解决你的问题。

如果你是出于对这行的“钱景”,想要未来在这行扎根,并且有不错的发展的话,应该不至于因为难而放弃吧?所以以我觉得想学习编程的朋友先从C语言入门还是不错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 译者序 序 第1版序 前言 第1章 基本概念 1.1 入门 1.2 变量与算术表达式 1.3 for语句 1.4 符号常量 1.5 字符输入输出 1.5.1 文件复制 1.5.2 字符计数 1.5.3 行计数 1.5.4 单词计数 1.6 数组 1.7 函数 1.8 变元—按值调用 1.9 字符数组 1.10 外部变量与作用域 第2章 类型、运算符与表达式 2.1 变量名 2.2 数据类型与大小 2.3 常量 2.4 说明 2.5 算术运算符 2.6 关系运算符与逻辑运算符 2.7 类型转换 2.8 加一与减一运算符 2.9 按位运算符 2.10 赋值运算符与赋值表达式 2.11 条件表达式 2.12 运算符优先级与表达式求值次序 第3章 控制流 3.1 语句与分程序 3.2 if-else语句 3.3 else-if语句 3.4 switch语句 3.5 while与for循环语句 3.6 do-while循环语句 3.7 break语句与continue语句 3.8 goto语句与标号 第4章 函数与程序结构 4.1 函数的基本知识 4.2 返回非整数值的函数 4.3 外部变量 4.4 作用域规则 4.5 头文件 4.6 静态变量 4.7 寄存器变量 4.8 分程序结构 4.9 初始化 4.10 递归 4.11 C预处理程序 4.11.1 文件包含 4.11.2 宏替换 4.11.3 条件包含 第5章 指针与数组 5.1 指针与地址 5.2 指针与函数变元 5.3 指针与数组 5.4 地址算术运算 5.5 字符指针与函数 5.6 指针数组与指向指针的指针 5.7 多维数组 5.8 指针数组的初始化 5.9 指针与多维数组 5.10 命令行变元 5.11 指向函数的指针 5.12 复杂说明 第6章 结构 6.1 结构的基本知识 6.2 结构与函数 6.3 结构数组 6.4 结构指针 6.5 自引用结构 6.6 查找表 6.7 类型定义 6.8 联合 6.9 位字段 第7章 输入与输出 7.1 标准输入输出 7.2 格式输出—printf函数 7.3 变长变元表 7.4 格式输入—scanf函数 7.5 文件访问 7.6 错误处理—stderr和exit函数 7.7 行输入输出 7.8 其他函数 7.8.1 字符串处理函数 7.8.2 字符类测试和转换函数 7.8.3 ungetc函数 7.8.4 命令执行函数 7.8.5 存储管理函数 7.8.6 数学函数 7.8.7 随机数发生器函数 第8章 UNIX系统界面 8.1 文件描述符 8.2 低级I/O—read和write系统调用 8.3 open、creat、close和unlink系统调用 8.4 随机访问—lseek系统调用 8.5 实例—fopen和getc函数的一种实现 方法 8.6 实例—目录显示 8.7 实例—存储分配程序 附录A 参考手册 A.1 引言 A.2 词法规则 A.3 语法符号 A.4 标识符的含义 A.5 对象和左值 A.6 转换 A.7 表达式 A.8 说明 A.9 语句 A.10 外部说明 A.11 作用域与连接 A.12 预处理 A.13 语法 附录B 标准库 B.1 输入与输出:<stdio.h> B.2 字符类测试:<ctype.h> B.3 字符串函数:<string.h> B.4 数学函数:<math.h> B.5 实用函数:<stdlib.h> B.6 诊断:<assert.h> B.7 变量变元表:<stdarg.h> B.8 非局部跳转:<setjmp.h> B.9 信号处理:<signal.h> B.10 日期与时间函数:<time.h> B.11 由实现定义的限制:<limits.h>和 <float.h> 附录C 变更小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值