初识C语言(1)

简介: 初识C语言(1)

C语言的优缺点

优点

1,运行速度快。C语言充分利用了计算机的优势,使C程序更加紧凑,运行速度更快。


2,强控制能力,有效利用内存空间。它具有汇编语言(汇编语言是一种底层语言,开发难度大,但是程序运行效率高)才具备的微调控能力,可以根据具体情况微调程序以获得最大运行速度或最有效地使用内存。


3,可移植性。C是可移植的语言,在一种系统中编写的C程序稍作修改或不修改就能在其他系统运行。如需修改,也只需简单更改主程序头文件中的少许项即可。可移植性是非常受人关注的,因为我们在这个系统中花费几个月编写的程序,如果现在突然需要在另外一个一个系统中使用,如果不具备可移植性,我们又需要在另外一个系统中重新花费几个月时间写程序。毫无疑问这个是非常低效的。


4,功能强大。例如UNIX 操作系统大部分是用C语言写的,其他语言(如,FORTRAN、Perl、Python、Pascal、LISP、Logo、BASIC)的许多编译器和解释器都是用c语言编写的。由此可见,C语言功能之强。


缺点

1,容易出现内存泄漏(讲人话就是,大量内存被浪费)。前面说了,C语言具有非常强的灵活性和强控制力,这就导致了如果设计者不小心,可能会导致大量的空间浪费。比如说,设计者申请了一块内存,使用完之后不释放。这样内存就出现了内存泄漏的问题。


2,容易出现变量莫名奇妙被更改了。举个例子,假设变量x为10。x这个数据存储在一个arr的数组后面,因为arr明明只有4个元素,但是它硬要访问第5个元素(术语叫做越界访问),而这第五个元素恰好就算x,那么元素x就会被强行更改。


学会C语言能干什么,或者说能找什么工作

1,嵌入式工程师(不懂的可以去B站搜郭天祥,稚晖君)。因为嵌入式工程师一般都是使用的单片机,单片机内存小,运行速度没有电脑这么快。所以需要一个高效灵活的语言,C语言毫无疑问就成了首选。


2,Linux工程师。C语言在Linux中具备极其重要的的角色,学Linux掌握C语言是必要的。


3,游戏工程师。我们平常玩的游戏很多都是C++写的,因为制作一款游戏需要对内存和运行速度尽可能的利用,不然内存太大下载和进入游戏都要半天,这游戏谁玩啊。而C语言和C++又有许多共同之处,可以说C++就是C语言的升级版本,学好了C语言,对之后学习C++很方便。


总结

看完这些,对C语言已经有一个简单的了解了。各位可以根据自己的需要是否学习C语言。虽然很多大学都要求学习C语言。但是如果自己之后不打算搞如上行业,C语言可以选择不学,直接学JAVA又不是不行。

目录
相关文章
|
存储 数据库 数据安全/隐私保护
OBCP第七章 OB迁移-备份恢复技术架构及操作方法
OBCP第七章 OB迁移-备份恢复技术架构及操作方法
368 0
|
容器
Pyside6-第十三篇-布局(最后一章废话-理论篇)
Pyside6-第十三篇-布局(最后一章废话-理论篇)
1022 0
|
4月前
|
人工智能 缓存 JavaScript
通义灵码深度体验:AI编程助手如何提升全栈开发效率
通义灵码是一款强大的AI编程助手,支持从代码补全到智能体自主开发的全流程辅助。在React+Node.js项目中,其实现了100%字段匹配的Mongoose Schema生成;通过`@灵码`指令,30秒内完成天气查询CLI工具开发,包含依赖管理与文档编写。其上下文记忆能力可自动关联模块逻辑,如为商品模型扩展库存校验。集成MCP服务时,不仅生成基础代码,还推荐最佳实践并添加缓存优化。测试显示,其响应速度快、复杂任务准确率高,适合中小型项目快速迭代,初期开发效率提升约40%。尽管存在文档同步延迟和TypeScript支持不足的问题,仍是一款优秀的AI编程伙伴。
243 7
|
SQL Java 数据库连接
17MyBatis - MyBatis模糊查询
17MyBatis - MyBatis模糊查询
109 0
|
机器学习/深度学习 传感器 人工智能
【博士每天一篇论文-综述】Brain Inspired Computing : A Systematic Survey and Future Trends
本文提供了对脑启发计算(BIC)领域的系统性综述,深入探讨了BIC的理论模型、硬件架构、软件工具、基准数据集,并分析了该领域在人工智能中的重要性、最新进展、主要挑战和未来发展趋势。
305 2
【博士每天一篇论文-综述】Brain Inspired Computing : A Systematic Survey and Future Trends
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
808 0
|
移动开发 JavaScript API
vue视频播放功能
vue视频播放功能
344 0
|
Java Maven
修改配置maven镜像仓库位置,将maven镜像更换成阿里镜像
修改配置maven镜像仓库位置,将maven镜像更换成阿里镜像
11146 1
|
算法
halcon视觉缺陷检测系列(3)频域和空间域转换的方法详解
halcon视觉缺陷检测系列(3)频域和空间域转换的方法详解
678 0
halcon视觉缺陷检测系列(3)频域和空间域转换的方法详解
|
Java 关系型数据库 MySQL
datax-web安装部署
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线 🍅该博客参考文献:datax-web官网
4785 0
datax-web安装部署