IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 浅读C Primer Plus——C语起源 -> 正文阅读

[C++知识库]浅读C Primer Plus——C语起源

一个贪财好色的程序员决定重新学C语言

在经历了一个又一个编程语言的更新换代,一个又一个框架的爆火流行与黯然失色之后,突然发现编程语言的发展与演化逐渐的遵循了某种规律与结构,与这种规律与结构最契合的编程语言,大概是C了,让我们返璞归真,重新上路。


写在前面: 时至编程语言及其框架如此丰富的今日,为什么还要学习C语言?


依我拙见,原因有二

(一)需要区分编程语言的学习模式

  1. Learn From Zero: 从0开始学起。
    譬如从今日起,你决定要开始学习武术,第一天直接学空翻显然是不现实的,鉴于武术的特殊性,只能是自下而上的金字塔学习路线,任何一套拳法或是武术动作都需要基本功“手眼身法步,精神气力功”的支持,所以只能从0开始,练好基本功。不存在半路出家的选项。
  2. Learn From Baseline:从基础线开始学习。
    基础线是一个笼统而又难懂的概念,简而言之,学习编程就是着重于眼下、当前需要完成的事而学习一种编程语言或是相关技术。如果作为一个IT行业新人,从AI(Artificial Intelligence)开始入门,起点未免有些太过出类拔萃,如果从机器语言开始学,又太过古老。从你感兴趣的点出发开始学习,继而深入前后继,温习前驱,找一个兼顾深度与广度的平衡点,所以选择了C语言。

(二)C语言的价值与意义

引用《射雕英雄传》中老顽童与郭靖的对话:“你师父洪七所练的降龙掌是外家功夫的顶尖,再练十年估计也就还是这样,难以有新的突破。但我师兄王重阳的武功可谓一步一重天,那是永无止境。”C语言正是程序员的内家功夫。就我而言,每次温习C的内容,并不是编程语言、库函数等内容上能带来新的体验,而是在机制,编程思想等方面,每次都能有新的启发,C语言兼顾了理论和实践的精髓,它保持了计算机底层逻辑的体验的同时,也兼顾了编程语言面向人的设计,综上所述,值得一学。
值得一学再学。


一切都将从C开始

C语言的起源:1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。

C语言的设计特性:C语言的设计理念让用户能轻松的完成自顶向下的规划,结构化编程和模块化设计。

C语言的可移植性:从学C的第一天起,会时不时的接收到“可移植”的概念,而它也仅仅是一个概念而已,很难真正的去理解何谓可移植性。或许了解过Unix/Linux内核设计详解之后,会有一丝开悟,对于可移植性有了新的认识,但很难浅显易懂的去描述这种特性,期待着各位读者在日后的编程工作中能够用心去感受,有自己的见解和体会。

C语言的缺点:成也指针,败也指针。有趣的是,有可能你在C编写中出现的错误,是用其他编程语言难以企及的错误。

/*如果你在编程中经常出现指针相关的bug,那么恭喜你,你是诸多新手中的老手*/
/*如果你在编程中出现的bug几乎都集中在指针区域,那么很遗憾,你是诸多老手中的新手*/

这里分享一下学习编程的心态:

  1. 无惧: 就深度来说,C语言诞生不过五十年光景,站在巨人肩膀上去学习C语言的时间成本远小于创造C语言花费的时间成本,所以应当树立无所畏惧的心态,相信在有限的时间内,总是可以学完学好C语言的。
  2. 敬畏:但是从广度上来讲,C语言诞生的五十年光景中,每年都有数以万计的程序员为这个编程语言赋予生命力,C语言所蕴含的能量可能是超乎你想象的。保持敬畏与尊重,参与到这数以万计之中来,找到自己的位置,才能看见自己的一片天地。

使用C语言的7个步骤(其实所有编程语言大同小异)

  1. 定义程序的目标
  2. 设计程序
  3. 编写代码
  4. 编译:涉及编译的内容可参考《计算机编译原理笔记
  5. 运行程序
  6. 测试和调试程序
  7. 维护和修改代码

当你可以清晰的提出一个问题的时候,其实解决方案已经胸有成竹,接下来需要将抽象的思维转化为具象的软件工程化语言,此时,可以借助C语言将你所想的内容通过编程转变为各种各样的工具,而如何利用这些工具,以及使用工具和解决问题的顺序,就可以称之为当前程序的算法。其次,在编程过程中,应当明确两个思想:


“我们不生产代码,我们只是代码的搬运工”
“从哪搬?搬到哪?怎么搬?”


编程机制:目标代码文件、可执行文件和库

#include<stdio.h>
int main(void)
{
    int girl_friends;

    printf("How many girl_friends do you have?\n");
    scanf("%d"&girl_friends);
    printf("So you have %d girl_friend(s) !\n",girl_firends);

    return 0;
}

C编程的基本策略是,用程序把源代码文件转换为可执行文件(其中包含可直接运行的机器语言代码)。典型的C实现通过编译和链接两个步骤来完成这一过程。

Windows系统下编译过程

编译器
链接器
链接器
链接器
源代码
目标代码.obj
启动代码
可执行文件.exe
库代码

UNIX系统下编译过程

输入源代码
文本编辑器
源代码name.c
编译器
可执行文件a.out
输入文件名a.out运行该程序

总结:

  • C是强大而简洁的编程语言,它之所以流行,在于自身提供大量的试用编程工具,能很好地控制硬件。而且,与大多数其他程序相比,C程序更容易从一个系统移植到另一个系统。
  • C是编译型语言。C编译器和链接器是把C语言源代码转换成可执行代码的程序。
  • 用C语言编程可能费力、困难,让你感到沮丧,但是它也可以激发你的兴趣,让你兴奋、满意。希望你在愉快的学习过程中可以爱上C。
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 15:50:34  更:2022-03-03 15:55:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:37:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码