emmm,这是我的第一篇博客。

作为一个软件工程专业的学生,我希望自己能在编程方面有不错的成就,我们老师告诉我们学编程就要写博客,在写博客的过程中不断成长,结交朋友,所以我就开始尝试写专业相关的博客。

我打算写一个能够让小白从零开始学会基本编程的类似教程的东西,其实也是在印证自己所学,为自己做一个痕迹管理。但是我认为我的博客里面可能会常常出现一些我意料之外的错误,所以希望博友们指正。

当然了,C/C++编译器怎么安装这类白到透明的技巧,我觉得自己百度就好~

希望可以帮助到有需要的人~


编译软件:Dev-C++ 5.11

编译器:TDM-GCC 4.9.2 32-bit Debug

操作系统:Windows 10 64位 2018春季更新版本


 #include <stdio.h>
int main()
{
printf("HelloWorld!\n");
return ;
}

最最基本的一个小程序,却包含了C语言中单个程序运行需要的全部内容。

首先是预处理

#include <stdio.h>

这句代码的意思是:调用头文件"stdio.h",这个头文件是 “standard input & output",也就是包含了标准输入输出语句的头文件。预处理了这个头文件以后,我们就可以使用printf()函数和scanf()函数进行输出和输入数据。

换言之,"stdio.h"头文件里包含了printf()函数和scanf()函数,预处理"stdio.h"使得我们可以使用这两个函数。

事实上,我们也可以自己写函数,然后保存为后缀".h"的文件,再在主程序所在的目录保存,我们就可以通过在主程序里面预处理我们自己的头文件,这样可以直接在主程序里使用我们自己的函数。

不过我们在调用自己的头文件时,要用""来调用,而不是<>:

#include "stdio.h"

没错,标准库里的头文件也能这样去调用。

然后是主函数

int main()
{
}

之前我介绍预处理命令时提到过函数,那么什么是函数呢?函数包含返回类型、函数名、参数、函数体四个部分。

最开始的int就是这个函数的返回类型,意思是函数结束必须要有一个int类型的返回值。

return ;

int是整数类型,它表示如0、1、2、-1之类的整数,return的意思就是返回,使用return 0其实有某种习惯的因素,大家普遍接受主函数返回0表示主函数正常结束。

函数名就是你写的函数的名字。

在C/C++里面,所有程序运行都要找到main()函数的位置,从main()函数开始一行行地运行下去,所以我们用C/C++写代码,一定都会有一个名字叫main的函数,并且我们所有的代码,都会以这个函数为中心写下。

当然,你要是乐意,你也可以写自己的函数:

void my_fun(void){}

不过,就算你自己的函数摆在main()函数前面,编译器还是会绕过你的函数,先行编译主函数。

看我的示例,其中void就是另一种返回类型,意为“空”,也就是说返回一个空值,也就不需要return 0之类的了。

我示例里面的函数名就是my_fun,在它后面有一对(),这对圆括号内写了一个“void”。嗯……写不写并没有什么影响,反正圆括号里实际上什么都没有。

这对圆括号内的东西,就是参数

比如我给自己的函数添加一个参数:

void my_fun(int a){}

或者我觉得一个参数太少了,那就两个呗:

void my_fun(int a,int b){}

好了,如果你看了我之前对返回类型的介绍,你就可以知道这两个参数”a"和"b"都是整数了。

这这句代码的意思是,将一个/两个整数传递给my_fun函数的参数a/a、b。

参数a、b实际都是变量,就跟我们高中学的f(x)=x+1中的x一样,是一个可以变化的、用于储存数据的单元。

不过加上int以后,我们就只能在a、b里面存整数了。

当然如果你不加的话你就存不了任何东西啦!

至于传递参数的作用?下一篇博客我自然会提到,因为下一篇博客我就要用到函数了。

函数体就是函数用{}包围的部分。

{
printf("HelloWorld!\n");
}

这一部分实际上是函数的实现,一个函数到底可以做什么,就看这里了。

这就是输出语句

printf("HelloWorld!\n");

百度百科的解释为:printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。程序编写时经常会用到此函数。printf()函数的挪用式样为: printf("<式样化字符串>",<参量表>);

可以看出,printf()实际上是"stdio.h"里的一个函数,作用就是将一些内容打印到屏幕上。

在我们的这一行代码中,打印内容是"HelloWorld!\n",实际效果是屏幕上面输出:

HelloWorld!

那么我们可以看到,printf()函数将""内的内容完整地打印到了屏幕上。

不过细心的小伙伴会注意到,\n不见了。

\n其实是转义字符,表示换行,也就是将光标移动到下一行。

转义字符还是有一些的,比如\b,作用就是将光标左移一位。

想要了解更多转义字符请自行问度娘。

百度百科的解释里,printf()内除了""括住的内容,还有一个叫做“参量表”的东西,留到下一篇吧!

从零开始学编程_第A001期_C语言HelloWorld详解的更多相关文章

  1. 从零开始学安全(五)●Vmware虚拟机三种网络模式详解

    vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). NAT(网络地址转换模式) NAT(网络地址转换)vm ...

  2. 为什么大部分的程序员学编程,都会选择从C语言开始?

    软件行业经过几十年的发展,编程语言的种类已经越来越多了,而且很多新的编程语言已经在这个领域从开始的默默无闻到如今风风火火,整个编程语言朝着集成化方向发展,这样会导致很多的初学者选择上不像以前那么单一了 ...

  3. 【和我一起学python吧】Python安装、配置图文详解

     Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...

  4. 【Unity编程】Unity中关于四元数的API详解

    本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...

  5. C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》

    前面说了写关于数组和指针的内容,这次在这里讨论一下字符串,讨论一下C语言风格的字符串. 在C语言里面我们利用字符数组来对字符串进行处理, 在C++里面我们前面说过一种类类型string可以对字符串进行 ...

  6. 全国计算机等级考试二级教程-C语言程序设计_第12章_C语言中用户标识符的作用域和存储类

    生命周期的概念,也就是生存期,仅仅适用于变量. 代码.常量.定义等等都是与程序共存亡的,他们的生命周期就是程序的生命周期. 静态分配:生命周期是整个程序执行周期,内存会一直存在,在main函数执行之前 ...

  7. 学数据库还不会Select,SQL Select详解,单表查询完全解析?

    查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式> .. ...

  8. Java并发编程(06):Lock机制下API用法详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.Lock体系结构 1.基础接口简介 Lock加锁相关结构中涉及两个使用广泛的基础API:ReentrantLock类和Condition接 ...

  9. 嵌入式应用中CGI编程中POST、GET及环境变量详解

    原载地址:http://3633188.blog.51cto.com/3623188/828095 1.POST和GET      一个CGI程序在于服务器之间的信息传输和数据传输一般通过两种方法,即 ...

随机推荐

  1. 缓存promise技术不错哦

    1. pageManager.js const promiseList = {}; module.exports = { putData: function(pageName,data){ promi ...

  2. 2019年8月12日~8月18日 第七周JAVA学习总结

    本周主要完成了PTA代码编写的任务,将报告也完成了,但是由于同学聚会比较多所以JAVA的学习比较少,也没有学习统一建模语言.用在编程的时间平均每天5个小时,用在JAVA学习上平均每天1个小时,用在解决 ...

  3. 初始化一个React项目

    1.create-react-app是一个通过npm发布的安装包,在确认Node.js和npm安装好之后,输入下面命令创建. 2.安装结束后,使用下面命令创建应用目录. 3.打开目录 4.运行项目 5 ...

  4. Python---进阶---函数式编程---按照权重排序

    一. 权重是100 价格占的权重是40%,销量占的权重是17%,评级站的权重是13%,评论占的权重是30% ---------------------------------------------- ...

  5. json对象之间的转化

    json字符串转化为 1.使用JSON.parse()函数 使用eval()函数 2.json对象转化为json字符串 使用JSON.stringify()

  6. 线程协作之threading.Condition

    领会下面这个示例吧,其实跟java中wait/nofity是一样一样的道理 import threading # 条件变量,用于复杂的线程间同步锁 """ 需求: 男:小 ...

  7. 七夕-心形表白-简单css代码

    今天你要和谁过? 今天你要怎么过?? 今天去哪里吃??? 公司的三连问,对于一些单身狗有点招架不住啊. 在此送上一个薄礼,来安慰下受伤的心灵... 确定是安慰不是连环打击嘛..... 回答:确定! 来 ...

  8. HTML DOM方法

    一.HTML DOM的作用 HTML DOM方法是我们可以在节点(html元素)上执行的动作. HTML DOM属性是我们可以在节点(html元素)设置和修改的值. 编程接口: 可以通过JavaScr ...

  9. React Native 之createDrawerNavigator和createSwitchNavigator

    其他代码接上篇文章 createDrawerNavigator 抽屉 createSwitchNavigator 模拟登录=>主界面 index.js /** * @format */ impo ...

  10. Distinctive Image Features from Scale-Invariant Keypoints(SIFT) 基于尺度不变关键点的特征描述子——2004年

    Abstract摘要本文提出了一种从图像中提取特征不变性的方法,该方法可用于在对象或场景的不同视图之间进行可靠的匹配(适用场景和任务).这些特征对图像的尺度和旋转不变性,并且在很大范围的仿射失真.3d ...