前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1. C语言的第一个程序

1. C语言的第一个程序

作者头像
谭庆波
发布2018-10-18 10:23:22
6990
发布2018-10-18 10:23:22
举报
文章被收录于专栏:轮子工厂

(。・∀・)ノ゙嗨!大家好,我是呆博~很开心可以在这里给大家分享我的 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 就可以直接执行。

除了编译型语言,还有解释型语言,如 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”框勾选上,如下图所示

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

4

执行第一个C语言程序

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

  1. #include <stdio.h>
  2. int main()
  3. {
  4. printf("Hello World!\n");
  5. return 0;
  6. }

其中的 #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,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 轮子工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档