我的C语言学习(蓝桥)————c语言扫盲

第一个 C 语言程序 - Hello ShiYanLou

在右边的实验楼环境 WebIDE 中新建一个文档,命名为 1-1.c,输入一下代码:

#include

int main(){

  printf("Hello ShiYanLou\n");

  return 0;

}

完成代码编写后,保存并在下面的终端输入编译命令:

gcc -o 1-1 1-1.c               //编译1-1.c,并取名为1-1

GCC 是由 GNU 开发的编程语言编译器,用来编译 C 语言程序。

gcc -o 1-1 1-1.c 命令调用编译器 GCC 对文件 1-1.c 进行编译,完成了预处理-编译-汇编-链接,生成了可执行文件 1-1

之后,点击回车,这时桌面上生成了一个名称为 1-1 的可执行文件,紧接着我们在终端输入:

./1-1                       //执行1-1

Linux 的终端中,输入可执行文件的文件名称就可以运行该文件,效果等同于桌面的双击快捷方式。

最终的呈现的效果如下图:

我的C语言学习(蓝桥)————c语言扫盲_第1张图片

 

你的屏幕上面是不是显示出了 “Hello ShiYanLou”?小伙伴你表现不错,这时你已经编写一个程序并让它运行了,可以的话,想想怎么显示自己设定的字符呢?

C 语言开发环境

Linux 下运行 C 程序

市面上常见的 Linux 都是发行版本,典型的 Linux 发行版包含了 Linux 内核、桌面环境和各种常用的必备工具,国内使用较多的是 Ubuntu(乌班图)、CentOS Deepin(深度 Linux)。我们实验楼的环境采用的是 Ubuntu 的操作系统。

GCC

Linux 下使用最广泛的 C/C++ 编译器是 gcc,大多数的 Linux 发行版本都默认安装了此编译器,不管是开发人员还是初学者,一般都将 gcc 作为 Linux 下首选的编译工具。本教程毫不犹豫地使用 gcc 来编译 C 程序。编译概念不懂也不要紧,我们马上就会讲述。

程序编写完成后保存文件,打开终端,在当前目录下使用下列命令调用了 gcc 编译器生成可执行文件。

Windows 下运行 C 语言程序

Windows 下的 C 编程常常使用 VC 6.0 或者 Dev C++ 5.7.1VC 6.0 是一个集成开发环境(IDE),简单来讲就是编程、编译、链接和执行集成在了一个软件上面。在我们实验楼暂且不需要你去学习在 Windows 下的 C 语言编程。当然,如果你想要了解如何在 Windows 下编程 C 语言,网上有非常多的其它相关教程可以供你学习参考.

剖析 C 语言

接下来我们将以上节课编写的名称为 shiyanlou C 程序为材料,来讲解 C 程序的创建过程以及 C 语言的程序结构。

  • 创建 C 程序
    • 编辑
    • 编译
    • 链接
    • 执行
  • C 语言的简单结构
    • 预处理指令
    • main()函数
    • 程序框架
    • printf() 函数

创建 C 程序

C 程序的创建过程有四个基本步骤:

  1. 编写;
  2. 编译;
  3. 链接;
  4. 执行。

编写

编辑的过程就是创建和修改 C 程序的源代码——我们使用右侧环境的编辑器编写的程序便是源代码。其实在 Linux 上,Vim 编辑器也是很常用的文本编辑器,有兴趣的小伙伴也可以在我们蓝桥云课中学习一下 Vim 编辑器的相关课程。

编译

编译器可以将源代码转换成机器语言,在编译过程中,会找出错误并报告。这个阶段的输入是在编辑期间产生的文件,常称为源文件。

编译器能找出程序中很多无效的和无法识别的错误,包括结构错误,例如程序的某个部分永远不会执行。编译器输出的结构叫作对象代码,存放它们的文件叫作对象文件。在 Linux 中这些文件的扩展名通常是 .o,在 Windows 下面这些文件的扩展名通常是 .obj 。如果编译成功就会生成一个文件,它与源文件同名。但扩展名为 .o 或者 .obj

其实我们在上一节编写第一个 C 语言程序的时候,使用的 gcc -o 1-1 1-1.c 这条命令既包含了编译也包含了链接,所以直接生成了可执行文件 1-1 Linux 下编译是在源代码文件所在目录输入以下命令(假如源代码文件是上节课的 1-1.c):

gcc -c 1-1.c

这时源文件所在的目录将会生成 1-1.o 的文件。

链接

链接器将源代码文件中由编译器产生的各种对象模块组合起来,再从 C 语言提供的程序库中添加必要的代码模块,将它们组合成一个可执行文件。链接器也可以检测和报告错误,例如程序中引用了一个根本不存在的库组件。链接一旦成功,就会生成可执行文件,在 Windows 下面可执行文件的扩展名是 .exe,在 Linux 下面,可执行文件没有扩展名,但它的文件类型是可执行的。

在编译生成 .o 文件的基础上我们将会输入以下命令(以编译生成 shiyanlou.o 为例):

gcc -o 1-1 1-1.o

这时 1-1.o 所在的目录将会生成 1-1 可执行文件。

多数情况下,我们是通过 gcc -o 1-1 1-1.c 一次性完成编译和链接。

执行

执行阶段就是成功完成了前述的三个过程后,运行程序。但是这个阶段可能会出现各种错误,包括输出错误,计算机什么也不做哦,甚至是计算机崩溃。无论如何,都需要我们返回编辑阶段,检查并修改源代码。相信大家都还记得上一节课的执行命令,在文件所在目录执行:

./1-1

创建 C 程序的各个过程:

我的C语言学习(蓝桥)————c语言扫盲_第2张图片

 

C 语言的简单结构

预处理指令

shiyanlou.c 的第一行代码如下:

#include

严格地说,它不是可执行程序的一部分,但它很重要,它是 C 语言中的标准输入输出库,程序没有它将不能做任何输入输出。符号 # 表示这是一个预处理指令,告诉编译器在编译源代码之前,要先执行一些操作。编译器在编译过程开始之前的预处理阶段会处理这些指令。预处理指令的类型相当多,大多放于程序源文件的开头。

在这个例子中,编译器要将 stdio.h 文件的内容包含进来,这个文件被称为头文件,因为通常放在程序的开头处。在本例中,头文件定义了 C 标准库中一些函数的信息,本例要用到标准库中的 printf() 函数,所以必须包含 stdio.h 头文件。stdio “standard input & output” 的缩写,包含了编译器理解 printf() 以及其它输入 / 输出函数所需要的信息。C 语言所有头文件的扩展名都是 .h 。在以后的学习过程中大家会看到很多其它的预处理指令。

main()函数

int main(){

  printf("Hello ShiYanLou");

  return 0;

}

main() 函数是主函数。每个 C 程序都由一个或多个函数组成,但每个 C 程序都必须有一个 main() 函数——因为每个程序总是从这个函数开始执行。

程序的几乎全部工作都是由各个函数分别完成的,函数是 C 程序的基本单位,在设计良好的程序中,每个函数都用来实现一个或多个特定的功能。

一个 C 语言程序由一个或者多个函数组成,其中必须包含一个 main() 函数(且只能有一个 main() 函数)。

一个函数包括两个部分:

一是 函数首部 即函数的第一行:

int main()

二是 函数体 即函数首部下面的花括号内的部分:

{

    ...

}

函数的内容我们会在以后的课程中涉及,这里只是简单的提及。

程序框架

#include

int main(){

  XXXX

  return 0;

}

我们的课程的所有程序都需要写上这一段,直到学习函数之前,我们的代码都是放在 “xxxx” 的位置,所以以后你每次写程序的时候,可以先把这个框架写上去,再在这个框架中间写代码。

  • printf() 函数

printf()  C 编译系统提供的函数库中的输出函数。

printf() 函数中双引号内的字符串 “Hello ShiYanLou” 按照原样输出,每个语句最后都有一个分号,表示语句结束。

课后练习

编写以下程序,输出运行结果:

#include

int main(){

  printf("23+56=%d\n", 23+56);

  return 0;

}

注:%d 说明后面有一个整数要输出在这个位置上。

练练手环节1:

输出 I love shiyanlou

介绍

在实验环境中编写一个 C 语言小程序,实现输出 “I love shiyanlou!”

知识点

  • Linux 下 C 语言程序编写
  • C 语言基础
  • printf 函数

目标

  • 在右边的实验楼环境 WebIDE 中新建一个文档,命名为 love.c,在文档 love.c 中编写代码;
  • love.c 可以在环境中编译运行,输出为 I love shiyanlou!

提示语

很简单的入门程序,完成后请点击文档下方的提交结果查看是否通过挑战。

参考答案

#include

int main(){

    printf("I love shiyanlou!");

    return 0;

}

你可能感兴趣的:(c语言,c语言,开发语言,后端)