1. C语言的第一个程序

简介: (。・∀・)ノ゙嗨!大家好,我是呆博~很开心可以在这里给大家分享我的 C 语言学习笔记~ 虽然维护我的个人博客已经有一年多的时间了,但是这么认真的连载文章还是头一回,而且也是第一次使用微信来排版,多少有点紧张。

(。・∀・)ノ゙嗨!大家好,我是呆博~很开心可以在这里给大家分享我的 C 语言学习笔记~

虽然维护我的个人博客已经有一年多的时间了,但是这么认真的连载文章还是头一回,而且也是第一次使用微信来排版,多少有点紧张。如果有什么纰漏,无论是排版内容,还是知识点的错误,大家直接指出来就好~

言归正传,那就开始今天的学习之旅吧!今天的文章将会概括的介绍下 C 语言,包括 C 语言的优点,如何搭建 C 语言的学习环境等,一起来吧!(づ ̄3 ̄)づ╭~

1

C 语言简介

C 语言属于第三代编程语言,也就是我们所说的高级语言。我们常见的 C++、C#、JAVA、Delphi、Python、Object-C、Swift 这些都属于第三代编程语言。

事实上执行 C 语言所写的程序时,编译器会将你的 C 语言代码编译成汇编语言,再由汇编语言的编译器编译为机器语言,进而让 CPU 理解和执行。通常我们看到的可执行文件事实上就是机器语言的形式。

2

为什么要学习 C 语言?

相信大家在我和厂长的序言中已经看到,C 语言是算法工程师的基础,更是计算机相关行业秋招的基本要求。事实确实是这样,但是什么原因使得 C 语言具有这样的地位呢?主要是以下三点。

1. 效率高

如下图所示,C 语言效率高是针对其他第三代编程语言来讲的,C 语言是编译型语言,源代码最终编译成机器语言,也就是我们所说的可执行文件,这样 CPU 就可以直接执行。

a0c524b33cbe340079284fa307ab0abea5af2bab

除了编译型语言,还有解释型语言,如 JAVA,Python,Ruby 。如上图所示,解释型语言不直接编译成机器码,而是将源码转换成中间代码,然后发送给解释器,由解释器逐句翻译给 CPU 来执行。这样做的一个好处就是可以实现跨平台的特性,而缺点就是效率相对要低一些,因为每执行一次都要翻译一次。

2. 灵活度高

C 语言不仅提供多种运算符,还可以完成类似于计算机底层操作的位运算;语法简单,约束少;丰富多变的结构和数据类型;还拥有可以直接操作计算机硬件能力。指针可以说是 C 语言的灵魂,C 语言有多灵活和强大,完全取决于你对指针这一知识点的掌握程度。

3. 可移植性高

可移植性高是指源代码在不需要做改动或只需稍加修改,就能够在其他机器上编译后正确运行。C 语言是目前可移植性最强的语言。

3

搭建 C 语言学习环境

在这里只是建议大家使用linux进行日后的编程学习,因为linux下十分很适合工程开发,如果你已经习惯使用 win 下的开发也是可以的。如果相关的学习环境已经搭建完毕或者有自己喜欢的学习环境,可跳过此部分进入第4部分。

考虑到大部分的同学使用 win 系统,所以搭建 C 语言学习环境主要包括安装虚拟机,ubuntu 系统以及 gcc 三个部分。

第一步:安装虚拟机

在这里很友善地推荐大家使用 VMware Workstation 12 Pro,并为大家提供了安装包和正版许可证密钥,VMware Workstation 12 Pro 正版许可证密钥一枚

第二步:虚拟机中安装Ubuntu

首先需要通过 ubuntu 官网下载一个桌面版,然后将它安装到虚拟机中就好了,百度搜索“虚拟机安装ubuntu ”,排序第一个就是一篇很好的教程。但是要注意的是,我们推荐使用 16.04,而那篇教程中是以 14.04 为例,需要注意。

第三步:安装 gcc 编译器

可以通过在终端中执行下面的语句安装gcc

sudo apt-get  build-dep  gcc

安装完成后可以通过如下方式查看版本

gcc --version

如果在使用上面的命令安装 gcc 的过程中出现了如下的错误

E: You must put some 'source' URIs in your sources.list

往往是由于换源导致的,可以在 Ubuntu 搜索的中找到 ‘Software & Updates’, 然后在 “Ubuntu Software” 菜单中将 “Source code”框勾选上,如下图所示

0238c2ca36fe63fb05b60c191a11774ae8e529d9

其中 “Download from” 一项选择刚刚所换的源,点击close 之后会出现询问是否reload的窗口,再点击reload 即可。

4

执行第一个C语言程序

讲了一六十三招,终于到了实践的部分!在学习每一门语言时,所写的第一个程序都是"Hello world!"。我们也不例外,代码如下所示

#include
<stdio.h>
int
 main
()
{
    printf
(
"Hello World!\n"
);
return
0
;
}

其中的 #include <stdio.h> 表示包含标准输入输出的头文件,这个在编程中几乎是必须要用到的;int main() 表示主函数在结束时会返回一个整型的数值,因为主函数的作用仅仅是打印一个字符串,并没有返回值,所以要在最后 return 0;

在终端中进入上面的 C 文件(比如说文件名为 tmp.c)所在的文件夹,输入如下的语句对我们所编写的程序进行编译

gcc tmp.c -o tmp

上面这句命令的含义是将 tmp.c 预处理、汇编、编译并链接形成可执行文件tmp,其中的 -o 选项用来指定输出文件的文件名。这时如果使用 ls ,会发现在当前文件夹中出现了一个名为 “tmp” 的文件,此时在终端中执行下面该命令便可以得到结果。

./tmp

上面这句命令的含义是执行当前目录下的 tmp 。如果觉得麻烦也可以通过下面的方式直接得到结果

gcc tmp.c && ./a.out

好了,今日份的内容大概就到这里了,感谢大家对我的信任


原文发布时间为:2018-10-01

本文作者: 独孤呆博

本文来自云栖社区合作伙伴“轮子工厂”,了解相关信息可以关注“轮子工厂"


相关文章
|
2月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
4月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
110 1
|
4月前
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
137 1
|
4月前
|
编译器 C语言 计算机视觉
C语言实现的图像处理程序
C语言实现的图像处理程序
173 0
|
7月前
|
存储 C语言
简单c语言程序举例
简单c语言程序举例
83 1
|
2月前
|
存储 文件存储 C语言
深入C语言:文件操作实现局外影响程序
深入C语言:文件操作实现局外影响程序
|
3月前
|
存储 编译器 程序员
C语言程序的基本结构
C语言程序的基本结构包括:1)预处理指令,如 `#include` 和 `#define`;2)主函数 `main()`,程序从这里开始执行;3)函数声明与定义,执行特定任务的代码块;4)变量声明与初始化,用于存储数据;5)语句和表达式,构成程序基本执行单位;6)注释,解释代码功能。示例代码展示了这些组成部分的应用。
107 10
|
4月前
|
自然语言处理 编译器 C语言
C语言程序的编译
C语言程序的编译
69 2
|
5月前
|
前端开发 C语言 C++
C语言03----第一个程序HelloWorld(vs版)
C语言03----第一个程序HelloWorld(vs版)
|
6月前
|
C语言 图形学 C++