前言

前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法。学习任何一门语言,首先要掌握的肯定是语法。学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算机、手机等硬件设备)进行交互。

编写第一个C语言程序 - Hello World

为什么称第一个程序为“Hello Wolrd”呢?其实计算机行业里面,学习任何技术的第一个程序都可以称为“Hello World”。“Hello World”的字面意思是“你好,世界”,也就是跟世界打招呼。我们第一个程序在这世界上诞生了,那肯定要跟世界打声招呼嘛,所以就称为“Hello World”。

用什么工具写代码

首先我们要做的肯定是写代码,在代码里面说清楚想要计算机做出怎样的操作。其实写代码就像平时写文章一样,只是在电脑上写一些文本内容,那用什么工具来写代码么?平时我们在Windows中写文章,可以用记事本、Word等文本编辑工具。当然,在实际开发中,为了提高开发效率,一般会使用开发工具。不过呢,开发工具屏蔽了很多操作细节和语法细节,不利于初学者直观、系统地学习一门语言。因此,在这里,我们暂时使用文本编辑工具UltraEdit来写C语言代码。

写代码

C程序由函数构成

写代码之前,你首先要知道:任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。

比如你用C语言编写了一个视频播放器程序,那么它的程序结构如下图所示:

从上图可以看出:函数就是用来实现某个功能的程序段,每一个函数都有自己的功能。因此,你应该把实现某个功能所需的代码都写在函数中。比如,有个函数的功能是播放视频,那么播放视频的代码都应该写到这个函数中。

当调用(执行)一个函数时,计算机就会按顺序执行函数中的所有代码,从而展示函数所实现的功能。

一般来说,我们会将不同的功能交给不同的函数去实现。比如,将暂停播放视频的代码写到一个函数中,将停止播放视频的代码写到另一个函数中。因此,一个C程序中可能会有很多的函数。

C程序的入口

前面说到:一个C程序中可能会有很多的函数,这样就会有个疑问:当我们运行整个程序时,在众多函数中,计算机会先执行哪个函数呢?也就是说,一个C程序的入口在哪里?我写了几千行的代码,应该先从哪一行代码开始执行啊?是从第一行代码还是从最后一行代码开始执行啊?

其实,C程序的入口是一个名字叫做main的函数,简称main函数。(为了区分函数,每一个函数都有一个名称)也就是说,不管整个程序中有多少个函数,都是先执行main函数。不管main函数写在文件中间,还是文件末尾,也都是先执行main函数。

需要注意的是:

如果一个C程序中没有main函数,那么这个程序就不具备运行的能力。连程序的入口都没有,还运行什么?

一个C程序中只能有一个main函数。想象一下也知道,如果有多个main函数,究竟先执行哪一个main函数呢?这会让计算机无法选择

编写main函数

现在已经知道,要想运行一个C程序,必须有一个main函数,接下来就在文本编辑工具中编写一个main函数。main函数的格式大致如下:

第1行的int暂时不用去理解,先认为是main函数的固定写法

第1行的main是函数名称,main后面的一对小括号()是函数的标志,绝对不能缺少!而且这对小括号是“英文括号()”,不是“中文括号()”!

第2行开始,有一对大括号{},函数内部的代码都要写到这对大括号里面。每一个函数都有一对{},{}里面的内容可以称为“函数体”。

在第3行添加了一行return 0;,暂时不用理解它的意思,先认为是main函数的固定写法。

像第3行这种写在函数中的代码可以称为一条“语句”。写完一条语句后,要在尾部加上一个分号“;”,代表语句结束了

编写输出语句

接下来在main函数中添加代码。

#include

int main()

{

printf("Hello World\n");

return 0;

}

在第5行添加了一条语句printf("Hello World\n");,这条语句的作用是让计算机在屏幕上输出用双引号""括住的内容:Hello World,后面的"\n"是一个转义字符,表示回车换行,因此,输出Hello Wrold这一串内容后会自动换行。至于为什么这条语句要这样写?为什么这条语句能让计算机输出东西?这些疑问都先搁着,以后会详细解释。

为了保证第5行代码的正常使用,就在main函数的前面加了一行代码#include ,暂时不用去深刻了解它的意思,默默加上即可,注意,这里是不用加上分号";"的

当运行这个程序,就会先执行main函数,接着就会按顺序执行main函数大括号{}中的所有语句(第5行、第6行语句)

需要注意的是:main函数中所有语句都必须写在第6行return 0;语句的前面,先别问为什么,以后会详细介绍

保存为C程序的源文件

代码写完了,总得保存起来吧,保存为什么格式的文件呢?每个文件都有自己的拓展名,不同的拓展名就代表着不同类型的文件,比如.mp4代表着视频文件,.txt代表着文本文件。我们前面编写的C语言代码,应该保存为一个拓展名为.c的文件,这个.c文件称为C语言程序的“源代码文件”,也称为“源文件”。

编译程序

前面已经把程序写好了,迫不及待想做的事情肯定是运行程序,看看计算机会有什么反应。遗憾的是,前面编写好的one.c文件还不能够运行。计算机只能识别0和1组成的机器指令,你现在写的这些什么int、main这些英文,它是看不懂的。我们需要使用C语言编译器,将源文件翻译成只有0和1的二进制文件,这个翻译过程,我们称之为“编译”。

打开终端(Dev-C ++)

在编译器中打开HelloWord.c文件

file -> open -> HelloWorld.c

编译 & 运行

Exexute -> run

运行结果:

生产可执行文件

语法校验

编译器除了能将.c源文件编译成.o目标文件之外,还有一个非常重要的功能:语法检测。跟英语一样,C语言也有自己的语法,如果你不按照C语言语法去写代码,那就无法编译成功。生成目标文件之前,编译器会先检查.c文件是否有语法错误,如果出现语法错误,会列出错误的总个数、错误原因和错误代码的行号,这时候就不会产生目标文件;必须修正相应的语法错误,重新编译成功后,才会生成目标文件。

接下来我把代码故意写错,第3行把int写成了intt,第5行语句少了一个分号";"

#include

intt main()

{

printf("Hello World\n")

return 0;

}

再执行编译

Exexute -> compile

这些错误信息(error)是一定要修改的,只要有一个错误信息存在,就不可能编译成功。以后还有可能会遇到一些“警告信息(warning)”,警告信息可以忽略,不影响编译。

用计算机c语言输出你好,编写第一个C语言程序 - Hello World相关推荐

  1. matlab m语言,我要编写matlab一个公式的m语言,请问错在哪里?,M语言的MATLAB的M语言...

    导航:网站首页 > 我要编写matlab一个公式的m语言,请问错在哪里?,M语言的MATLAB的M语言 我要编写matlab一个公式的m语言,请问错在哪里?,M语言的MATLAB的M语言 匿名网 ...

  2. 在编写了一个c语言源程序c001.c,C习题及答案

    第一.二章 C语言概述与算法 一.选择题(四个选项中只有一个是正确的----下同) 1. 一个算法应该具有"确定性"等五个特性,下面对另外4个特性的描述中错误的是 A) 有零个或多 ...

  3. 一个c语言程序的开发环境,C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序...

    在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...

  4. 恶作剧c语言程序,自己用C语言编写的一个恶作剧小程序代码

    自己用C语言编写的一个恶作剧小程序代码 #include #include #include #define MAX 100 void hebingString(char s1[],char s2[] ...

  5. Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

    Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序.自从Xamarin问世后,C#的作用就发生了很大的变化. ...

  6. 用Notepad++来编写第一个HTML网页程序,你也可以!!!

    学习任何一门编程语言,我们都要迈出第一步,运行第一个代码.我还记得当第一次运行成功python的"hello word"时的激动,还有html时的开心,反正收获蛮大的.哈哈,还是进 ...

  7. iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序

    iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序 程序是为了实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.本章将以编写第一个Sprite Kit程序为 ...

  8. ROS学习笔记三:编写第一个ROS节点程序

    在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package). 一.创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次性创 ...

  9. 编写第一个HADOOP应用程序

    http://space.itpub.net/8183550/viewspace-686332 在MyEclipse 8.5环境下 编写了一个HADOOP小程序. 创建Java 工程 打开eclips ...

最新文章

  1. 图像处理之添加高斯与泊松噪声
  2. 不用for 也能实现按照某索引排好某序列
  3. CentOS安装oracleJDK
  4. 网络订票当心三类陷阱 最好当场识别真伪
  5. android 日期相减得天数_Excel日期计算方法大全
  6. vs2012搭建gtest环境
  7. kafka的key为null时如何存储
  8. 信息安全系统设计基础第八周学习总结
  9. windows环境下设置Redis自启动
  10. calayer动画总结(一)
  11. C语言中要改变循环语句的流程可以使用的语句有哪些
  12. 关于asp.net 中 cookies 的清空
  13. oracle月份相减函数,Oracle 日期函数的加减
  14. 使用vue-ui可视化管理工具来创建项目并安装vue-cli-plugin-element插件
  15. 【网络重置】WLAN消失/网络适配器黄色感叹号/无法识别无线网卡/解决方法汇总/Win10家庭版(个人留档)
  16. 微信小程序+nginx+php+mysql实现数据库管理【第一期】数据库与php的正确连接
  17. Visual Assist 使用小结
  18. QT自动适配高分屏的解决方案
  19. 学习笔记1:搭建floodlight+mininet+sflow环境
  20. [STL乱搞]51 Nod——1573 美丽的集合

热门文章

  1. 微信公众号和同步助手使用
  2. python基础语法测评_Python基础语法测评(A1卷)
  3. 1.5功能播报:搜狐畅言社会化评论系统智能应用
  4. KVM内核文档阅读笔记
  5. Android Studio更新问题
  6. Go微服务实战2:了解微服务
  7. 网站收录和网站索引的技巧有哪些
  8. FineReport报表工具最新版本细则
  9. 给OneNote2016安装NoteHighlight2016, 插件无法加载问题【已解决】
  10. Time类中的运算符重载