1,前言

​ 相信计算机专业的同学已经再熟悉不过C语言是一门最基础的语言。学好这门语音,就可谓是行走天下、打遍天下无敌手。如今我们学校也开设了这门课程,还是想记录一下。做个笔记。

​ 之前是学习过python,Java也有一点点接触(不会打hello world的那种)对比这三种语言,不难发现他们基本的东西都是有的,只不过语法不一样。

好~现在开始

2,C语言的发展史及特点

C语言的发展史大家知多少。特点呢,语法简单?运行速度快?python也是这么说的。哈哈

2.1,C语言发展史

  • 1963年,剑桥大学将ALGOL 60语言发展成为CPL语言。(组合的程序语言)
  • 1967年, 马丁理查德对CPL语言简化,产生了BCPL语言。
  • 1970年,美国贝加尔实验室肯汤姆森将BCPL语言精华提炼除了,起名B语言。这个时候第一个Linux系统诞生。
  • 1973年,还是在美国贝加尔实验室丹尼斯瑞切在B语言的基础上zui’z设计出一种新语言,C语言

是不是ALGOL语言就是A语言呢?

2.2C语言的特点。

  • 语法简单、紧凑、使用方便、灵活。
  • 运算符丰富。
  • 数据类型丰富。
  • 具有结构化控制语句
  • 语法限制不太严格,程序设计自由度大。
  • 可以直接访问物理地址,对硬件进行操作。
  • 可移植性强;在一个平台写的代码,可在别的操作系统上直接使用
  • 生产目标代码质量高,程序执行效率高

我帮大家数一下,一共有八条。很容易理解。其实在我学习python的时候,python也是这么说的。

还听到大佬们说过C语言执行速度慢,难学。

这八条特点大部分我都没有解释,毕竟以后都会体现出来。

3,C语言的基本结构

3.1,简单的C语言程序

1,C程序

/* 打印hello world */
# include <stdio.h>   //编译预处理指令。
int main()   // 定义主函数。
{   // 函数开始printf("hello world");   //函数体;printf()打印内容
}   // 函数结束

这是学习任何一门语言都会经历的过程hello world的输出。

我把程序的运行结果贴上来

你好 世界

2,解释

# include <stdio.h>   //编译预处理指令。
int main()   // 定义主函数。
{   // 函数开始printf("hello world");   //函数体;printf()打印内容
}   // 函数结束

稍微改动一下下。

  • 第一行 include <stdio.h> 头文件又叫头部文件。

    这段程序我们使用了一个函数。printf()这个函数在stdio.h里面。文件名是stdio,扩展名.h。(header.h)头文件的意思。没有这行语句,那么printf() 不会运行。这个就相当于给这个程序出示一下这个函数的信息。

    随着项目的需求我们会使用更多的函数,同时这里也会增加。

    其实这里也很像python库的引用 import time这么一说是不是就理解了。

  • main() 主函数。int 表示函数的类型,这里是整型。

    每个C语言必须有一个主函数(main)。

    还有一种高级的使用方法,我们看图

    这张图制作不易啊,一直误触。

    函数体有花括号{}括起来。里面就是还函数体的语句。每条语句的最后有一个 分号。表示语句结束。

  • printf() 输出、打印函数。这个很容易理解。

  • 注释,这个是给我们自己看的,不编译、不会执行。有两种形式,大家都应该看到了吧。

    // :单行注释;可以独占一行,也可写在右侧。以// 开始,以换行符结束。

    /*.....*/ :注释多行注释。以/* 开始,以 */ 结束

3.2,复杂的C语言程序

复杂的程序那就是把操作符、数据类型、循环、选择全部用上。写一个小程序,写一个大项目。


这是都是项目。但是有一句名言讲得好

不积跬步44,无以至千里;不积小流,无以成江海

冲冲冲!

3.3,C语言的基本构成

从上面的观察中确实可以整理出一些东西,main();include等等,我们整理一下,把它们列出来。

  1. 一个C语言源程序可以由一个或多个源文件组成。
  2. 每个源文件可由一个或多个函数组成。
  3. 一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
  4. 源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
  5. 每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
  6. 标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

列出来会发现有六条,不想看,实际上这六条已经在上面的代码中体现出来了。

4,C语言的开发过程

任何一门语言,她都会有一个属于自己的开发过程。什么是开发过程,没有学过任何语言时我会想不就是对着电脑码代码吗?这个又什么可说的?不不不,开发过程并没有更多的讲述如何码代码,而是我们码的代码是怎么通过计算机实现的,在我们看不见的地方,代码是怎么转换的?

#mermaid-svg-ARBJweJvnrbPg4s3 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .label text{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .node rect,#mermaid-svg-ARBJweJvnrbPg4s3 .node circle,#mermaid-svg-ARBJweJvnrbPg4s3 .node ellipse,#mermaid-svg-ARBJweJvnrbPg4s3 .node polygon,#mermaid-svg-ARBJweJvnrbPg4s3 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ARBJweJvnrbPg4s3 .node .label{text-align:center;fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .node.clickable{cursor:pointer}#mermaid-svg-ARBJweJvnrbPg4s3 .arrowheadPath{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-ARBJweJvnrbPg4s3 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-ARBJweJvnrbPg4s3 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-ARBJweJvnrbPg4s3 .edgeLabel rect{opacity:0.9}#mermaid-svg-ARBJweJvnrbPg4s3 .edgeLabel span{color:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-ARBJweJvnrbPg4s3 .cluster text{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-ARBJweJvnrbPg4s3 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ARBJweJvnrbPg4s3 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-ARBJweJvnrbPg4s3 .actor-line{stroke:grey}#mermaid-svg-ARBJweJvnrbPg4s3 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-ARBJweJvnrbPg4s3 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .sequenceNumber{fill:#fff}#mermaid-svg-ARBJweJvnrbPg4s3 #sequencenumber{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .messageText{fill:#333;stroke:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ARBJweJvnrbPg4s3 .labelText,#mermaid-svg-ARBJweJvnrbPg4s3 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-ARBJweJvnrbPg4s3 .loopText,#mermaid-svg-ARBJweJvnrbPg4s3 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-ARBJweJvnrbPg4s3 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-ARBJweJvnrbPg4s3 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ARBJweJvnrbPg4s3 .noteText,#mermaid-svg-ARBJweJvnrbPg4s3 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-ARBJweJvnrbPg4s3 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-ARBJweJvnrbPg4s3 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-ARBJweJvnrbPg4s3 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-ARBJweJvnrbPg4s3 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .section{stroke:none;opacity:0.2}#mermaid-svg-ARBJweJvnrbPg4s3 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-ARBJweJvnrbPg4s3 .section2{fill:#fff400}#mermaid-svg-ARBJweJvnrbPg4s3 .section1,#mermaid-svg-ARBJweJvnrbPg4s3 .section3{fill:#fff;opacity:0.2}#mermaid-svg-ARBJweJvnrbPg4s3 .sectionTitle0{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .sectionTitle1{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .sectionTitle2{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .sectionTitle3{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-ARBJweJvnrbPg4s3 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .grid path{stroke-width:0}#mermaid-svg-ARBJweJvnrbPg4s3 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-ARBJweJvnrbPg4s3 .task{stroke-width:2}#mermaid-svg-ARBJweJvnrbPg4s3 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .taskText:not([font-size]){font-size:11px}#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-ARBJweJvnrbPg4s3 .task.clickable{cursor:pointer}#mermaid-svg-ARBJweJvnrbPg4s3 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ARBJweJvnrbPg4s3 .taskText0,#mermaid-svg-ARBJweJvnrbPg4s3 .taskText1,#mermaid-svg-ARBJweJvnrbPg4s3 .taskText2,#mermaid-svg-ARBJweJvnrbPg4s3 .taskText3{fill:#fff}#mermaid-svg-ARBJweJvnrbPg4s3 .task0,#mermaid-svg-ARBJweJvnrbPg4s3 .task1,#mermaid-svg-ARBJweJvnrbPg4s3 .task2,#mermaid-svg-ARBJweJvnrbPg4s3 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutside0,#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutside2{fill:#000}#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutside1,#mermaid-svg-ARBJweJvnrbPg4s3 .taskTextOutside3{fill:#000}#mermaid-svg-ARBJweJvnrbPg4s3 .active0,#mermaid-svg-ARBJweJvnrbPg4s3 .active1,#mermaid-svg-ARBJweJvnrbPg4s3 .active2,#mermaid-svg-ARBJweJvnrbPg4s3 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-ARBJweJvnrbPg4s3 .activeText0,#mermaid-svg-ARBJweJvnrbPg4s3 .activeText1,#mermaid-svg-ARBJweJvnrbPg4s3 .activeText2,#mermaid-svg-ARBJweJvnrbPg4s3 .activeText3{fill:#000 !important}#mermaid-svg-ARBJweJvnrbPg4s3 .done0,#mermaid-svg-ARBJweJvnrbPg4s3 .done1,#mermaid-svg-ARBJweJvnrbPg4s3 .done2,#mermaid-svg-ARBJweJvnrbPg4s3 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-ARBJweJvnrbPg4s3 .doneText0,#mermaid-svg-ARBJweJvnrbPg4s3 .doneText1,#mermaid-svg-ARBJweJvnrbPg4s3 .doneText2,#mermaid-svg-ARBJweJvnrbPg4s3 .doneText3{fill:#000 !important}#mermaid-svg-ARBJweJvnrbPg4s3 .crit0,#mermaid-svg-ARBJweJvnrbPg4s3 .crit1,#mermaid-svg-ARBJweJvnrbPg4s3 .crit2,#mermaid-svg-ARBJweJvnrbPg4s3 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-ARBJweJvnrbPg4s3 .activeCrit0,#mermaid-svg-ARBJweJvnrbPg4s3 .activeCrit1,#mermaid-svg-ARBJweJvnrbPg4s3 .activeCrit2,#mermaid-svg-ARBJweJvnrbPg4s3 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-ARBJweJvnrbPg4s3 .doneCrit0,#mermaid-svg-ARBJweJvnrbPg4s3 .doneCrit1,#mermaid-svg-ARBJweJvnrbPg4s3 .doneCrit2,#mermaid-svg-ARBJweJvnrbPg4s3 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-ARBJweJvnrbPg4s3 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-ARBJweJvnrbPg4s3 .milestoneText{font-style:italic}#mermaid-svg-ARBJweJvnrbPg4s3 .doneCritText0,#mermaid-svg-ARBJweJvnrbPg4s3 .doneCritText1,#mermaid-svg-ARBJweJvnrbPg4s3 .doneCritText2,#mermaid-svg-ARBJweJvnrbPg4s3 .doneCritText3{fill:#000 !important}#mermaid-svg-ARBJweJvnrbPg4s3 .activeCritText0,#mermaid-svg-ARBJweJvnrbPg4s3 .activeCritText1,#mermaid-svg-ARBJweJvnrbPg4s3 .activeCritText2,#mermaid-svg-ARBJweJvnrbPg4s3 .activeCritText3{fill:#000 !important}#mermaid-svg-ARBJweJvnrbPg4s3 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-ARBJweJvnrbPg4s3 g.classGroup text .title{font-weight:bolder}#mermaid-svg-ARBJweJvnrbPg4s3 g.clickable{cursor:pointer}#mermaid-svg-ARBJweJvnrbPg4s3 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ARBJweJvnrbPg4s3 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-ARBJweJvnrbPg4s3 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-ARBJweJvnrbPg4s3 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ARBJweJvnrbPg4s3 .dashed-line{stroke-dasharray:3}#mermaid-svg-ARBJweJvnrbPg4s3 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 .commit-id,#mermaid-svg-ARBJweJvnrbPg4s3 .commit-msg,#mermaid-svg-ARBJweJvnrbPg4s3 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-ARBJweJvnrbPg4s3 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-ARBJweJvnrbPg4s3 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ARBJweJvnrbPg4s3 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ARBJweJvnrbPg4s3 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ARBJweJvnrbPg4s3 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-ARBJweJvnrbPg4s3 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-ARBJweJvnrbPg4s3 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ARBJweJvnrbPg4s3 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-ARBJweJvnrbPg4s3 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-ARBJweJvnrbPg4s3 .edgeLabel text{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ARBJweJvnrbPg4s3 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-ARBJweJvnrbPg4s3 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-ARBJweJvnrbPg4s3 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-ARBJweJvnrbPg4s3 .note-edge{stroke-dasharray:5}#mermaid-svg-ARBJweJvnrbPg4s3 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-ARBJweJvnrbPg4s3 .error-icon{fill:#522}#mermaid-svg-ARBJweJvnrbPg4s3 .error-text{fill:#522;stroke:#522}#mermaid-svg-ARBJweJvnrbPg4s3 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-ARBJweJvnrbPg4s3 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-ARBJweJvnrbPg4s3 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-ARBJweJvnrbPg4s3 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-ARBJweJvnrbPg4s3 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-ARBJweJvnrbPg4s3 .marker{fill:#333}#mermaid-svg-ARBJweJvnrbPg4s3 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-ARBJweJvnrbPg4s3 {color: rgba(0, 0, 0, 0.75);font: ;}

编译
.C文件
.obj文件
.exe文件
运行j

这是一个最简单的流程,

  1. 编辑源程序:我们编译一个文件,扩展名.c

  2. 编译源程序。所谓编译,其实就是翻译,将我们写好的程序翻译成计算机可以看懂的二进制的目标代码。如果源程序没有错误则生成一个与源程序同名,以.obj 为扩展名的目标程序。如果出现错误,就要改bug。

  3. 链接目标程序:下面是老师ppt中提到的

    编译后的目标程序会形成多个模块,还要和库函数进行连接,连接过程是使系统提供的“链接程序”运行的,产生以.exe 为扩展名的可执行文件

    这里我也参考了书,应该是要表达,生成一个零时文件。但他需要与系统组件(比如标准库、动态链接库)结合。类似打包,把他们装起来

    什么是系统组件:我的理解是类似“依赖”这个程序必须有这个支撑才可以运行

  4. 运行:这个就很简单吧,看到.exe 文件,大家都明白这是什么吧

他的具体流程是这样的,第一次画流程图,大家看看吧,不能说很美观。但是内容就是这样的

5,计算机语言

这部分内容本来说不想提了,但是还是应该要明白,在这里写一下。

计算机语言,我是怎么理解的,Java、php、python、c等等,是吗?考试还有机器语言、汇编语言、高级语言,会不会还会有低级语言?这部分,课上学的并不是很深入,我参考的书,自己叙述一下

机器语言

什么是机器语言,机器=电脑,电脑自己说出来的话?电脑会说话?我不信。

计算机的工作是基于二进制,0和1,也就是说计算机只能读懂0和1组成的指令。在计算机发展的初期,计算机的指令长度是16。想要让计算机有一次操作,那么你就是编写一个由0和1组成的16位数字。反正很复杂,一次操作16个数字,100次操作呢?10000次呢,我不碰计算机了,这个看起来就很复杂。但是还是有极少数人会的。

说一个概念,什么是机器指令。那就是由一串0和1组成的数。

总结,什么是机器语言。就是由0和1组成的指令。

符号语言

啥是符号语言。是不是用符号做成的语言,类似现在的程序语言。

为了机器语言方便,因为机器语言比较难。人们用一个符号代替一个操作,比如ADD表示“加”,SUD表示“减"

但是呢,我们说计算机只识别二进制指令,符号算个啥。这个时候”汇编“这个名词就诞生了。确切地说是汇编程序的软件。这个软件有什么用呢?就是把符号语言转换成机器指令。一条符号语言转换成一条机器指令。转换的过程称为”汇编“或者”代真“

因此符号语言又叫做汇编语言。

这种语言有不足吗?有!是不互通的,我在我的电脑写的程序不可以在你的电脑上执行。完全是依赖于计算机具体的特征。是面向计算机的语言。机器语言也是这样。

高级语言

应该是很高级。什么是高级语言?回顾我们现在敲代码的逻辑,写一行语句都是由单词、数字、运算符、表达式构成的。

比如说求两个数的和

a = 1+1;

将1+1的结果赋值给a,python、Java、等等他都是这样的。是不是就方便了,

他的功能也很强大,我写好的程序可以在任何设备或者系统中运行,当然也可能需要你修改一丢丢。突然想到了一句话

python是一门跨平台的语言

c语言的跨平台更好

Java可以跨平台

???是不是无论是什么语言,只要是高级语言是不是都可以跨平台。我是这样理解的

编译:这个大家应该知道了吧,翻译。我引入一个概念

用一种称为编译程序的软件把用高级语言写的程序(源程序)转换为机器指令的程序(目标程序),然后让计算机执行机器指令,最后得到结果。

这个看着有点绕,就是翻译。

我写的是源程序。编译软件翻译成目标程序。

高级语言也有的历史。补充一下,第一门高级语言是:FORTRAN语言

非结构化语言

就是说编程风格随意,我只要不破坏规则,你管我!程序的流程可以随意跳转、追求程序运行效率使用”技巧“但是他的缺点显而易见,难阅读、不好维护、

结构化语言

为了解决上面的问题,提出”结构化程序设计方法“。规定程序不可以随意。要符合程序设计三大结构(顺序结构、选择结构、循环结构)程序不可以随意跳转,程序总是由上到下执行各个基本结构。这样也便于阅读、维护,程序也很清晰。

但是适用于编写规模小的程序,如果是大程序,那就是很复杂。

程序设计三大结构在不同的编程语言叫法也不一样。但是意思都是一样的

面向对象语言

这个面向对象编程,并不是面向对象(女朋友、男朋友)编程。哈哈

好像有个笑话,没有对象,new创建一个对象

这个概念比较抽象,可能我也说不清楚,因此知道即可

6,一些问题

有一些问题,为什么说python运行得快、C语言慢,有个解释性语言的概念,我们一起看看

好吧我错了,python运行的慢。

但是我搜集到了一些名词:解释性语言、编译型语言、动态语言、会不会有静态语言?

编译型语言

代表:C语言。

这个还和编译不一样。他的意思是把我们写好的程序(源代码)经过一次编译,就可以脱离开发环境运行。

在代码执行前将源码转换成机器语言,进行执行。

有两个特点:跨平台差、执行速度快。

解释型语言

代表:python。

就是说一行一行语句进行编译。一边执行,一边解析。

不会在执行前将源码转换成机器语言,而是一边执行一边编译

一边执行一边解析,可以跨平台这些说明解释型语言依赖于结束前,离不开它。

特点:执行慢,跨平台。

-看了个例子,就相当于吃饭,都是去吃饭。编译型顾客吃菜、解释型顾客吃火锅。编译型顾客吃得快。为什么?菜好了直接吃饭。而解释型顾客呢?大家都是怎么吃火锅的,一边涮一边吃。

我应该还是没有讲明白把,我理解了一半,编译型语言和解释型语言归根结底就是编译的形式不一样。都是要翻译源码变成机器语言。

那么什么是静态语言什么是动态语言

静态语言

使用变量时需要确定变量的类型,在没有强制转换的情况下只能用这中类型

例如:我现在定义一个整型变量int x 因此x只能是1,2,3等等,整型,int型。3.14不可以。这是浮点型。

动态语言

反之。变量复制后确定变量类型。

x=1 x是int型、整型;x=3.14 x是float型,浮点数。

嘿,我还一直想呢,为什么python不用给变量进行定义,随取随用。

7,总结

好了,到此结束!

开学过半,这学期快要结束了,C语言的第一章写完了。当然也不是无用功,正好复习了第一章。这一章是基本上没有多少代码。因此我也是没有过多于记住。当然也是了解到了一些其他知识。这也算是对python的一个补充吧。

这部分内容讲解了C语言的发展史,其实有A语言、B语言,最后都合并了C语言。C语言yyds!哈哈哈。然后呢C语言的七个特征。他的结构,后面就是机器语言,任何高级语言都会转换成机器语言。但是在转换机器语言的过程中他们又不一样。类似恰饭。之后是静态语言和动态语言区别在于哪里。

当然这也应该是我2021年的最后一篇文章了吧,临近期末,复习了。

大家要用一整个月的努力去迎接2022呀!明年见。提前祝大家新年快乐。

以上就是我的C语言学习笔记。肯定有不足的地方,请大家多多指正。如果帮到了你,我很荣幸。谢谢大家的观看。

记住。当然也是了解到了一些其他知识。这也算是对python的一个补充吧。

这部分内容讲解了C语言的发展史,其实有A语言、B语言,最后都合并了C语言。C语言yyds!哈哈哈。然后呢C语言的七个特征。他的结构,后面就是机器语言,任何高级语言都会转换成机器语言。但是在转换机器语言的过程中他们又不一样。类似恰饭。之后是静态语言和动态语言区别在于哪里。

当然这也应该是我2021年的最后一篇文章了吧,临近期末,复习了。

大家要用一整个月的努力去迎接2022呀!明年见。提前祝大家新年快乐。

以上就是我的C语言学习笔记。肯定有不足的地方,请大家多多指正。如果帮到了你,我很荣幸。谢谢大家的观看。

C语言之概述学习笔记相关推荐

  1. 《Go语言圣经》学习笔记 第四章 复合数据类型

    <Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...

  2. 计算机、程序和 Java 概述 学习笔记

    计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. 计算机包括硬件( hardware ) 和软件( software) ...

  3. 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)

    学习者:骆栢维 题目来源:生信基石之R语言 中级10 个题目:http://www.bio-info-trainee.com/3750.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...

  4. 《Go语言圣经》学习笔记 第十一章 测试

    <Go语言圣经>学习笔记 第十一章 测试 目录 go test 测试函数 测试覆盖率 基准测试 剖析 示例函数 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语 ...

  5. 《Go语言圣经》学习笔记 第十章 包和工具

    <Go语言圣经>学习笔记 第十章 包和工具 目录 包简介 导入路径 包声明 导入声明 包的匿名导入 包和命名 工具 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. G ...

  6. 《Go语言圣经》学习笔记 第九章 基于共享变量的并发

    <Go语言圣经>学习笔记 第九章 基于共享变量的并发 目录 竞争条件 sync.Mutex互斥锁 syn.RWMutex读写锁 内存同步 syn.Once初始化 竞争条件检测 示例:并发的 ...

  7. 《Go语言圣经》学习笔记 第八章 Groroutines和Channels

    <Go语言圣经>学习笔记 第八章 Groroutines和Channels 目录 Goroutines 实例:并发的Clock服务 实例:并发的Echo服务 Channels 并发的循环 ...

  8. 《Go语言圣经》学习笔记 第六章 方法

    <Go语言圣经>学习笔记 第六章 方法 目录 方法声明 基于指针对象的方法 通过嵌入结构体来扩展类型 方法值和方法表达式 示例:Bit数组 封装 注:学习<Go语言圣经>笔记, ...

  9. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

最新文章

  1. python画图颜色-python – 在matplotlib中绘制不同的颜色
  2. IPC进程间通信 D-Bus(Desktop Bus)快速入门(以libdbus-glib库为例)
  3. 高阶前端开发人员必备工具-Node.JS知识讲解
  4. 在java中使用关键字导入包_java中import关键字的使用方法
  5. JavaFX 2 GameTutorial第3部分
  6. vue 2个方法先后执行_有效快速制作工资条的2个方法
  7. mysql语句错误怎么查找_为什么我的mysql语句一直报错,找不到错误,望各位大佬指点一番...
  8. Pwn2Own 2020线上争霸赛落幕:Fluoroacetate 团队四度蝉联 Master of Pwn!
  9. 面对一个全新的环境,作为一个Mysql DBA,首先应该了解什么?
  10. 【数据结构】二分查找代码模板
  11. python+selenium+Firefox+pycharm版本匹配
  12. 高德sdk android加载3857,GCJ02-Correct
  13. 【组队学习】【32期】组队学习内容详情
  14. 三维von Mises-Fisher分布的均值方差
  15. excel怎么把竖排变成横排_排版丑怎么办?5个方法拯救你
  16. 2015 kitti 数据集_KITTI 数据集
  17. JavaScript入门3JS外置对象:Window、Document对象与DOM实例详解
  18. 20190509 大数据小牛学堂培训全套视频课程资源
  19. 51单片机:中断实现按键按一下数码管从00加到99循环(C语言)
  20. 如何通过Word制作条形码

热门文章

  1. Zookeeper 集群4字命令白名单 stat is not executed because it is not in the whitelist.
  2. [LGOJ5151]HKE与他的小朋友——[缩点+vector]
  3. 51单片机mp3音乐播放器设计
  4. 免疫学与免疫学检验基础测试题
  5. bluestack模拟器测试APK,使用obb文件资源解压
  6. pop3 postfix 命令_postfix 邮件服务的安装及详解
  7. 图幅号计算(JS、HTML)
  8. 无人机光电吊舱目标定位-实验安排
  9. jsp实验报告批阅管理系统
  10. 美国大学专业排名一目了然 备战雅思是梦想实现的第一步