初学任何一门编程语言,最先接触的例子一定是hello xxx(我也不知道这个神奇的传统是如何形成的)

初学者可能有很多地方不太理解:这里为什么要这样写?? 这个又是神马意思??

下面我来对hello world 做一个详细的解析来加深大家对C语言的理解吧。

首先贴出书上的例程:

#include

int main (void)

{

printf("Hello world!\n");

return 0;

}

一个程序,简单的可以理解为你让计算机去做一件事情。上面这个就是你让计算机在屏幕上输出hello world。

第一句有什么卵用?

首先从字面上解释,include是包含的意思,那它要包含啥呢?后面有个stdio.h。至于# <>这两个约定俗成的符号,是为了让计算机识别的。stdio,其实是standard input output的缩写,即基本输入输出。而stdio.h可以形象地理解为是一个工具箱,里面包含了各种造好的工具,当然,里面没有真正的锤子或是榔头。计算机要用到这个工具箱来进行基本输入输出操作,而后面用到的printf就相当于这里面的一把螺丝刀。

int main(void)又是什么鬼

首先来说一下函数,计算机里面的函数类似数学上的函数,但又不太一样。数学上,自变量x0经过f()的作用后得到了f(x0)。那么在上面的程序里,main相当于f,f(x0)是一个值(可以是整数、分数...),那么main()也是一个值,int是integer(整数)的缩写,表明main作用出来的是一个整数。像f(x)一样,这个main函数也需要有自变量"x"的输入啊!void翻译过来是“无效的,空的”,放在main的自变量位置,说明main的自变量输入是空,即“我并不需要自变量”。

{ 我是函数主体 }

像f一样,main也是有特定功能的,于是约定要被执行的功能被放在了一对花括号中。

printf("Hello world!\n");

printf()类似main(),也是一个函数。它从哪来的??对,就是我们之前包含的stdio.h工具箱。printf()的自变量就是"Hello world!\n"。日常生活中双引号中间的是一句话。这边也是类似,不过它有个更高逼格的名字:字符串。

\n,固定的表达,next line,表示换行。为什么要有 \ ? 不然n就识别不出来了!

return 0;字面意思,返回0。前面说过,main()是一个整数,最后总会要有一个值的!return+值 就是表示给这个main()一个值。(0一般表示程序运行成功,所以通常main返回0)

上课的void main()是什么鬼?

与int main(void)类比一下,int表示整数,也就是最后要返回一个整数值给main,而换成了void,表示“我不要返回值”。所以细心的人肯定发现了老师并没有return 0;这句。main()括号里面是空的,默认没有参数。不用管了。

一个hello world还是值得细细揣摩的。等到正式学起来大家就会有更深的理解了。

©Fing

转载请注明出处

hello是c语言中的变量吗,C语言hello world详解相关推荐

  1. nodejs 获取系统环境变量_Node.js中环境变量process.env的一些事详解

    前言 最近这两天在和运维GG搞部署项目的事儿.碰到一个问题就是,咱们的dev,uat,product环境的问题. 因为是前后端分离,所以在开发和部署的过程中会有对后端接口的域名的切换问题.折腾了一下午 ...

  2. c语言 信号函数,C语言中进程信号集的相关操作函数详解

    C语言sigismember()函数:测试某个信号是否已加入至信号头文件:#include 定义函数:int sigismember(const sigset_t *set, int signum); ...

  3. 在c语言中 使用变量的要求,关于C语言中变量的探讨

    摘 要: 在所有的计算机高级语言中,都存在着变量这样一个重要的概念.变量是计算机高级语言程序的重要成分之一.与其他语言中的变量相比,C语言中的变量所包含的内容更为丰富,包括变量的定义.数据类型.变量数 ...

  4. c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法

    网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...

  5. r语言 分类变量 虚拟变量_R语言中的变量

    r语言 分类变量 虚拟变量 R语言| 变数 (R Language | Variables) In the previous tutorial, we have come across the bas ...

  6. c语言根据变量作用域不同分为,C语言中不同变量的访问方式

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? C语言中的变量大致可以分为全局变量,局部变量,堆变量和静态局部变量,这些不同的变量存储在不同的位置,有不同的生命周期.一 ...

  7. c语言中有bool变量吗,C语言中有bool类型吗?

    之前一直都没有注意到,最近在用C语言写DSP算法时,偶然间发现我函数中定义的bool类型的变量在VC6.0(我主要用它来检查一下语法错误)中编译居然报错了,说是bool类型没有定义.用了这么久的C和C ...

  8. c加加属于面向对象的程序设计语言吗,下列语言中属于面向对象的程序设计语言是______。A、Visual BasicB、PASCALC、CD、FORTRAN...

    下列语言中属于面向对象的程序设计语言是______.A.Visual BasicB.PASCALC.CD.FORTRAN 更多相关问题 经纬仪如存在指标差,将使观测结果出现( ). 德治的约束作用主要 ...

  9. verilog语言中的@什么意思 verilog语言中的@什么意思

    verilog语言中的@什么意思 verilog语言中的@什么意思 2012-05-27 22:47 在英语中@ 读at,也就是在--的时候,这个小学应该学过,对吧.verilog中@ 的含义就是触发 ...

最新文章

  1. Linux cmake使用入门
  2. php 数据透视表,php – 使用Laravel模型过滤数据透视表数据
  3. 双指针算法基本原理和实践
  4. JS setTimeout 与 setInterval
  5. vue饼图组件_vue2.0 自定义 饼状图 (Echarts)组件
  6. iOS性能优化篇 —— 耗电优化总结
  7. 论述计算机与外设的访问控制方法,试论述计算机与外设访问控制的方法有多少种各有什么优缺点...
  8. 案例:实现用户注册功能
  9. 机器学习实战(MachineLearinginAction) 第一章
  10. 利用函数求数组中的最大值
  11. 《算法竞赛入门经典》例题5.4.1
  12. 内网通免广告/积分码
  13. aceAdmin框架依赖
  14. Failed to obtain JDBC Connection;
  15. 语音机器人在人工智能领域的发展
  16. unity3d+虚拟城市:技术要点
  17. php 上传绕过,文件上传验证绕过技术总结
  18. 微信h5缓存清理技巧
  19. 知其然,而不知其所以然
  20. 联想笔记本声音太小怎么办_笔记本声音太小,小编告诉你笔记本电脑声音太小解决方法...

热门文章

  1. 【译】MVVM Tutorial with ReactiveCocoa: Part 1/2
  2. 编译mgiza的准备
  3. Curator counters
  4. Java多线程协作(wait、notify、 notifyAll)
  5. 巧用find命令清除系统垃圾
  6. Access里执行SQL
  7. 2003系统服务器,雨林木风 windows server 2003企业版服务器系统
  8. @query 注解的定义_SpringDataJpa(5)---定义查询方法
  9. Ajax全局加载框(Loading效果)的配置
  10. mapreduce 丢数据_大数据之MapReduce详解