C语言快速入门

目录

介绍

C语言是什么?它是用来做什么的?相信刚接触计算机的同学都会问这个问题。

  • C语言是一门程序设计语言,在1972年于贝儿实验室丹尼斯·里奇(Dennis Ritch)肯·汤普逊(Ken Thompson)在开发UNIX操作系统(顺便提下,现在除了Windows以外的操作系统,都是(类)Unix操作系统,包括Linux, macOS(Darwin内核), iOS(Arm版的Darwin内核), Android(它就是Linux内核)等)时设计的。

  • C语言作为一门程序设计语言,那它到底是用来干什么的呢?顾名思义,他是用来设计程序的,而程序则是计算机指令集,也就是人类编写了计算机能读懂的一段文字,计算机帮我们执行。再简单地说,我们手机里的APP就是计算机程序的一种。

为什么是C语言

了解过计算机的同学都知道,计算机语言除了C语言,还有Java, Python, Swift, Kotlin, Visual Basic, Shell, Ruby, Lua, C#, Go, JavaScript等等,他们可能都比C语言高级(更简单学习,也更简单编写程序),但是C语言却是他们的鼻祖,C语言有着无与伦比的运行速度(和汇编语言(建议点进去看下百度百科哦)差不多),以及无与伦比的自由性,这些特性使得这门有着渊源历史的语言在如今还占据着重要的位置,作为学计算机的大学生,是必修的一门语言,它对计算机的深入理解有着很好的帮助。当然C++是现在比C语言更好用的一门语言,它兼容C语言,也有很多自己新的特性,是更适合现代开发的一门语言,学完C语言,大家估计就会接触到它的。

起步

了解了C语言的历史以及现在的现状之后,那么我们就开始尝试看下怎么编写一个C语言程序(本文不涉及到代码部分,只讲过程,便于以后操作)。

首先,我们先来了解编译器的概念。

编译器

编译器,其实就是一种翻译装置,它可以将我们编写的代码翻译成机器语言(二进制0/1),让计算机读懂我们想让他干什么。(计算机只理解二进制,它看不懂我们的语言。)

这里有个概念我想声明下(不了解电脑的同学可以忽略括号里的字),不同的操作系统它的可执行文件是不同的,所以不能通用,就好像你苹果手机的APP到安卓手机上就无法运行一样。同时,针对不同的处理器架构(手机的ARM处理器架构和电脑的x86处理器架构是不同的,32位(电脑: x86, 手机ARMv7以下)和64位(电脑: x86_64, 手机ARMv8以上)处理器也是不一样的架构)开发的程序不能在不兼容的电脑上运行,比如,手机上的APP不能在电脑上运行,需要模拟器才能运行。这点请注意,因为每个架构的处理器的指令集不同,这会导致其对应的汇编语言和编译器都不一样。

开始

有了这些预备的历史知识,那我们就来试试手吧。

(注意:本文不涉及到任何代码讲解,只是过一过编写程序的流程,具体代码解释会将在下一章节中解释。)

安装编译器 & 代码编辑器

不同的操作系统编译器和编辑器有所不同,下文将详细介绍。


macOS

macOS,也即苹果电脑的系统,在这里我是最推荐使用该系统进行学习、开发的,因为它特别的方便,对程序员很友好。

步骤
  • 首先,打开App Store,搜索Xcode。
    搜索Xcode并下载
  • 等他安装完之后我们打开它
    看图吧
  • 新建项目
    按照图中步骤吧
  • 名字设置 & 保存的位置
    设置名字
    保存的位置
  • 搞定
    简介

下文将会继续介绍编辑和编译运行。


Linux

步骤
  • 先确定你的Linux发行版本用的是什么包管理器,Debian、Ubuntu、Kali Linux、Deepin等用的是apt,Cent OS用的是yum,Arch Linux用的是pacman。

  • 安装编译器
    首先运行命令安装编译器。

包管理器类型 命令
apt sudo apt update && sudo apt install gcc g++
yum sudo yum update && sudo yum install gcc gcc-c++
pacman sudo pacman -Sy gcc
包管理类型 安装vim命令 安装codeblocks命令
apt sudo apt update && sudo apt install vim sudo apt update && sudo apt install codeblocks
yum sudo yum update && sudo yum install vim sudo yum update && sudo yum install codeblocks
pacman sudo pacman -Sy vim sudo pacman -Sy codeblocks

这样,所需的软件就安装完毕了。

  • 使用codeblocks编辑和编译将会在使用Windows编辑中讲解,请参考下文。

  • 使用vim编辑将会在使用使用安卓手机编辑中讲解,请参见下文。


Android

你可曾想过,安卓手机上也能进行编程(苹果上还没发现好的软件),而且是在一个Linux环境中使用vim(一个文本编辑器)进行的。

话不多说,我们来看看怎么弄的吧。

步骤
  • 下载所需的软件
    在商店中搜索Termux,下载并安装。

    长这样(百度上搜索也能下载到)

  • 打开Termux软件,刚进去他会显示Installing...也就是正在安装,他会从网上自带下载一个Linux的系统环境下来。

出现这个就完成了

这时候光标停在$号之后,说明我们可以输入了。

等待我们输入

接下来我们在里面输入:

pkg update

然后回车执行命令。接下来你可能会看到这样一个界面:
yes or no

这时候我们只需输入y并回车即可。

如果中途再次出现类似[y/n]之类的,一律输入y并回车就行。

跑完一堆log之后最终停在
等待我们输入

的时候就说明升级完成了。

  • 接下来我们就和Linux一样,来安装gcc和g++编译器了
    输入下面的命令来安装编译器:
pkg install clang

如果遇到[y/n]输入y回车即可。

  • 安装vim文本编辑器
pkg install vim

至此,软件就都安装完毕了,下文将继续介绍如何编辑和编译。


Windows

Windows用户可以选择Dev C++进行编辑,编译器他已经集成在里面了,所以,用起来会很方便。同样的,Code::Blocks使用起来也是很方便的。当然Sublime Text(官网下载)也是一个很好的选择,但配置起来并不方便,不建议新手使用,这里就不介绍了。

下面将介绍使用Code::Blocks和Dev C++两款IDE(Integrated Development Environment, 集成式开发环境)来编程,大家只要选择自己喜欢的一款即可,我推荐使用Code::Blocks,因为Dev C++有很多年没有更新了。

使用 Code::Blocks
  • 首先去官网下载该款软件。

    去官网下载这个软件

  • 安装完打开就是这样的,我们在菜单中找到新建文件

    新建文件

  • 完成后就是这样的
    完成
  • 我们先保存下,方便我们后面输入代码
    保存

输入部分,我们将在下文介绍到。

使用Dev C++
  • 首先我们先去SourceForge上下载Dev C++

  • 安装并打开,他会跳出提示,你选择语言为中文即可。

    选择语言
    然后就会让你选择编辑器外观,这里选择自己喜欢的就好了。
    选择主题
    完成!
    完成

  • 新建文件
    新建文件

    这样,我们就完成了安装,下文将介绍如何用各大IDE进行编辑和编译运行。

编辑 & 编译 & 运行

首先,我先放上大名鼎鼎的Hello World代码,过会大家复制粘贴进去就可以了,不必理解,我们主要来看一下如何编译运行。

#include<stdio.h>

int main()
{
    printf("Hello World!\n");
    return 0;
}

macOS的Xcode

我们先把代码复制到中间的编辑区域,然后点击左上角的三角形按钮,即可完成编译和运行,结果将在右下角的小窗口里展示出来。
运行

最“难”的vim (Android & Linux)

在所有软件的操作中,vim编辑是最难的,但同时也是最好的。为什么说他好呢,因为编辑完之后,编译和运行都将是由你手动完成的,这会让你对gcc或g++编译器命令更加熟悉。

新建以及编辑文件

以下列命令格式编辑 & 新建一个文件。

vim [文件名.后缀]

例如输入vim hello.c命令将会打开vim编辑器,保存后,你将会得到一个名叫hello.c的文件。

那我们就以安卓手机为例吧,Linux是一样的。

  • 首先我们输入刚刚的命令。
    文件名大家可以自己定
  • 输完命令回车执行后他就会跳出来这样一个界面。
    新文件
  • 我们按键盘上的i键(注意务必把键盘调成英文模式)进入插入模式(i键代表insert)进行编辑。

    按f进入坦克,哦错了,是按i进入插入编辑模式

  • 然后我们就可以愉快的输入啦(注意,手机上可以直接用触摸屏移动光标,电脑上Linux如果鼠标用不了,请在~/.vimrc这个文件里加入一句set mouse=a就好了)

  • 输入完之后保存

    输入完之后按ESC退出编辑模式

    注意:输入:wq来保存,注意,这边有一个冒号,w代表的是write,写入的意思,q代表的是quit,退出的意思。在这里我在补充几个命令吧。:w只有一个w那就是只保存,不退出编辑器;:q只有一个q就是直接退出,但是注意,一旦你修改过了文件就无法用这个命令退出了;:q!强制退出,不做任何修改,即使你做了修改。
    保存
    退出
    最后来个gif,更帮助理解。

gif解释了一切

这样,我们就完成了编辑。

现在我们来编译这个文件。

编译

其实编译也没那么复杂,一条命令就可以搞定了。

gcc [文件名.后缀]

这样,就完成了编译了,是不是很容易?

就拿上面的那个文件作为例子吧。
我们输入下列命令来编译。

gcc hello_world.c

如图
如果就像上图一样输入完命令后直接就跳到下一行的话,说明编译没有任何问题,但如果它出现了红色的,那就说明写的有问题,根据提示就可以找到错误所在了。有时它会有,那暂时可以忽略,不过我们的Hello World不存在任何,一般出现了就代表输错了。

这样,我们就在当前目录下生成了一个名叫a.out的可执行文件了。

再讲运行之前先讲一些简单的Linux命令吧。


简单的Linux命令

1. 显示当前文件下所有的文件

ls

这个命令就会将当前文件夹下所有的文件都展示出来,ls应该是list的缩写。

2. 重命名/移动文件

mv [已存在的一个文件] [目标文件名/目录]

如果要移动一个文件,那么可以参考下面的例子

mv hello.c /sdcard

这样,当前文件夹下的hello.c文件就被移动到/sdcard目录下了。

如果要重命名一个文件,同样的,执行mv命令。

mv hello.c test.c

这样,当前文件夹下的hello.c就被重命名为test.c了。

3. 进入文件夹

cd [目录名]

假如你当前文件夹下有一个名叫picture的文件夹,你想进去看下里面存放着什么,那么我们就可以使用cd命令进入该文件夹下用ls一探究竟了。

cd picture

当然,你ls看完了之后想回到上一个文件夹怎么办呢,那么我们就可以用下面的这个命令回上去。

cd ..

..代表上一级目录。
当然,你也可以用cd去别的目录,比如:

cd /sdcard

这样你就到了根目录下的sdcard目录下了。

3. 显示当前目录的绝对路径

pwd

用这条命令就可以显示出来了。

4. 复制操作

cp [已存在的一个文件] [目标目录]

mv很像,例子:

cp hello_world.c /sdcard/

这样,你就把当前目录下的hello_world.c拷贝到/sdcard/(也就是手机的sd卡目录)下了。

如果你要复制一个文件夹,那就加上-r吧。

cp -r [已存在的一个目录] [目标目录]

5. 删除操作

注意,本操作非常危险,请确认要删除再执行本命令

因为

删除的文件都无法恢复!!!!

所以,必须谨慎!!!

rm [要删除的文件]

比如,你要删除那个a.out的文件,那就执行这个命令:

rm a.out

可能会提示是否删除,那就输入y回车就行了

删除目录

rm -r [目录]

如果它出现了一堆提示说你是否删除的话,那就用下列命令:

rm -rf [目录]

f代表force,强制,r其实是recursion的缩写,意味着递归删除,也就是会把一个目录下的所有东西(包括子目录)全部删除哦。

6. 新建文件夹

mkdir [你要新建的文件夹名字]

比如,你要新建一个名为code的文件夹,那就可以执行下面的命令:

mkdir code

这样,你在用ls命令看一下的话,就会发现多了个名叫code的文件夹了。

更多的Linux命令在这里不详细讲了,大家可以百度,这里只是简单的介绍一下。


运行

好不容易编辑&编译完了,那么我们来运行它吧!

./a.out

这样它就运行了。

运行了!!

但是,如果我们像给他换个名字,不要老是生成a,out怎么办呢?(不然每次用mv命令太麻烦了!)

所以,在编译的时候我们可以在新加上一个参数:

gcc hello_world.c -o hello

这里的-o就是一个可选(o是一个参数,一般参数前加上-就是可选的)的参数,o应该是output file的意思,后面跟的输出文件名,所以这句话就可以生成一个名叫hello的可执行文件。

这样就好了:
搞定哈!

看完这段文字,恭喜你!!学会了简单的Linux操作,也会了最难的C语言编辑编译运行过程!

Code::Blocks

如图,点击编译运行,如果遇到困难,请看这篇博文《CodeBlocks下载与安装教程》。

Code::Blocks编译并运行
成功!
成功

Windows上的Dev C++

点上面的图标进行编译运行
Dev C++ 编译并运行
成功

结语

本文学习了编辑编译运行的流程,至于Hello World,我们将在《C语言快速入门 - Hello World 详解》中进行解释。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容