对于初学者来说,第一个程序一般都是hello world,而且是照着书上一点一点敲的。所以,在初学者眼中,敲出来的第一个程序代码不过是一堆看不懂的英语。而事实上,C语言作为一门语言,是有语法的。所以这一节,我们以C语言最简单的一个程序为载体,初步了解C语言的语法,相信读者看了以后不用看书也能写出一个hello world程序。

首先,我们先不说C语言,我们先从人类语言开始,假设我现在给你的任务不是让你用计算机输出一行hello world,而是让你找另一个人给你写一行hello world。这个任务你会怎么完成呢?

显然,你会找个人对他说:“给我在纸上写一行hello world。”(假设他会无条件听你的话)

好,很简单,这个任务就完成了。但是现在任务的完成对象并不是人,而是计算机,你需要按照它的语法对它说话。那么你能在敲代码的区域里打上“写一行hello world给我”吗?可以,前提是在前面打两个斜杠“//”。这两个斜杠的意思是在后面的东西是注释。计算机会忽略所有注释,因为注释是方便人阅读的。一般来说,注释默认写在被注释的语句或语段上面。

还有一种注释方法是/*中间是要注释的内容*/

两种注释方法的区别是,两个斜杠的注释只能管到一行的结束,而第二种注释可以自己随意选择起始和结束位置。所以在学语法的时候,注释可以忽略不计,因为注释对程序本身是没有作用的。一般来说,注释可以加在代码的任何地方,但是为了美观还是要规范写注释。下面是一个带注释的hello world程序。

#include

int main(void)

{/*下面要输出hello world*/printf("hello world");return 0;

}

那么问题来了,那我直接在代码区域写

printf("hello world");

这样不就行了吗?然后编译,运行。会发现编译器会报错。(补充一句,C语言每句话结束都要加分号,这是语法,如果漏加会报错,不再赘述。而且,所有语法中的符号必须用英文格式输入,比如;;前者会报错)既然报错了,说明其他语句也是有用的,那么具体作用是什么?下面开始讲解。

首先每个c程序必须有一个主函数框架。

intmain(void)

{

}

在主函数框架里就是你要编写的内容,相当于告诉计算机:“这里面就是你要执行的命令。“

那么return 0;这一句是干什么的呢?它的意思是让主函数正常结束。一般来说这句话都是写在最后。如果你把这句话写在printf前面,还没等输出,程序已经结束了,所以就不会有东西输出。也就是说程序的一般就是

intmain(void)

{return 0;

}

所以hello world 的主程序就是

intmain(void)

{

printf("hello world");return 0;

}

你会发现,即使这样写完,再编译还是错的。为什么呢?有没有发现在开头的代码里,第一行还有#include这句话又是干什么的呢?

那么你有没有想过一个问题,既然计算机听不懂你说“输出一行hello world”,它凭什么就能听懂printf("hello world")?所以,相信你已经猜到这句话是什么意思了。这句话就是教会计算机听懂printf。stdio.h是头文件,它是一个函数库:标准输入输出库(standard input output的缩写)。.h是后缀名,头文件(head file)的后缀名一般都是.h。那么把stdio.h给include进来的这句话叫做声明语句。声明语句都以#开头,标准自带库文件要用尖括号。所以是#include而且值得注意的是,声明语句结尾不用分号。

因此,一个hello world 程序就很自然的出来了。

#include

int main(void)

{

printf("hello world");return 0;

}

这样就可以编译运行了。在明白了每句话的意思的基础上,读者可以自行编写一遍。

//int main(void) 有很多不同的形式,比如int main() int main(int argc,char *argv[]) 暂时不需要知道其中的区别

c语言第一个程序详解,一,彻底理解第一个C语言程序 Hello World相关推荐

  1. 《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序

    一.学习目标 了解C语言代码的一般结构 了解函数的概念 了解printf函数的使用方法 了解头文件的概念 了解system函数的使用方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语 ...

  2. 51单片机温度控制C语言程序详解,基于单片机的温度控制系统设计(附程序清单及原理图).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp电子工程/通信技术&nbsp>&nbsp电子设计 基于单片机的温度控制系统设计(附程序清单及 ...

  3. angular语言前端开发_详解使用angular-cli发布i18n多国语言Angular应用_唇印_前端开发者...

    在模板 Hello world! 使用ng命令产生xlf格式的message.xlf文件 $ ng xi18n --output-path src/i18n 命令执行后,生成 src/i18n/mes ...

  4. 嵌入式c语言为什么变量定义在前面,嵌入式C语言数据类型和变量详解

    原标题:嵌入式C语言数据类型和变量详解 一般来讲,标准的C语言类型在嵌入式编译器中是合法的.但由于嵌入式控制器的受限环境.嵌入式c语言的变量和数据类型具有新的特征,这些特征体现在如下方面. 嵌入式C语 ...

  5. 数学建模——遗传算法步骤及程序详解

    数学建模--遗传算法步骤及程序详解 文章目录 数学建模--遗传算法步骤及程序详解 前言 一.遗传算法的基础 1.编码和解码 2.适应度函数 3.交叉 4.变异 5.选择 二.遗传算法原理步骤 1.初始 ...

  6. 程序人生 | C语言字节对齐问题详解 - 对齐/字节序/位序/网络序等(上)

    本文首发于 2014-07-21 15:32:28 1. 引言 考虑下面的结构体定义: typedef struct{char c1;short s; char c2; int i; }T_FOO; ...

  7. 单片机c语言程序流程图,ds1302时钟程序详解,ds1302程序流程图(C程序)

    ds1302时钟程序详解 DS1302 的控制字如图2所示.控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RA ...

  8. java文档注释定界符_c语言的注释定界符详解

    c语言的注释定界符详解 c语言的注释定界符是什么 1.最早期的C语言注释是:/* */ 2.后来又增加的行注释:// 其中/**/是多行注释,//是单行注释. 需要注意的是:C 语言的注释并不是可以出 ...

  9. c语言背包问题装字母,C语言动态规划之背包问题详解

    01背包问题 给定n种物品,和一个容量为C的背包,物品i的重量是w[i],其价值为v[i].问如何选择装入背包的物品,使得装入背包中的总价值最大?(面对每个武平,只能有选择拿取或者不拿两种选择,不能选 ...

  10. Dede二次开发程序详解(dede爱好者必备)

    Dede二次开发程序详解(dede爱好者必备) 调用说明:推荐会员(带用户头像)  [quote] {dede:sql sql="SELECT mid,mtype,userid,uname, ...

最新文章

  1. OpenStack的部署T版(八)——Dashboard
  2. Scala-Actor并行wordcount
  3. 常用SQL语句优化技巧
  4. input 限制只能输入数字,且保留小数后两位
  5. linux 运行java工程师_java工程师linux命令,这篇文章就够了
  6. select在各个浏览器中的兼容性问题
  7. Doors软件安装以及DXL入门
  8. 常用的pcb设计软件有哪些
  9. 阿铭Linux_传统IDC 部署网站学习笔记20190218
  10. 弧长公式 | 微积分
  11. AXI总线简介(二)
  12. 项目管理成熟度模型及项目量化管理
  13. mfc匹配关键字颜色显示_如何在多台显示器上匹配颜色
  14. 关于TC Games针对没有耳机接口的Type-C用户玩手游如何传音和语音
  15. Android11.0下应用管控实现解决方案(家长管理)(一)
  16. html5个人收藏页面,safari个人收藏全不见 大侠不过一剑之遥是倚天的新版本吗?...
  17. QT常用函数总结(全)
  18. CSS3动画效果-animate.css
  19. html中url表示方法,HTML网页中的URL表示方式介绍
  20. Scala类和对象详解

热门文章

  1. 从事网络安全,可以考取哪些证书?
  2. 快速学会corn表达式
  3. 用mips衡量计算机性能指标是什么,用MIPS衡量的计算机性能指标是什么_常见问题解析...
  4. 达梦数据库实验三:DMDBMS表查询操作
  5. docker-compose部署项目
  6. 路由器下一跳地址怎么判断_计算机考研复试面试常问问题 计算机网络篇(下)...
  7. 软件测试缺陷等级划分_如何进行软件缺陷等级定义?
  8. linux没有应用程序,Ninite为Linux安装多个应用程序没有任何麻烦 | MOS86
  9. e.printStackTrace() 导致系统卡崩
  10. 安卓怎样查看网站服务器地址,怎样查看安卓APP服务器地址