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. curl 详解

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  2. MySQL基础day03 存储引擎和外键MySQL 5.6

    MySQL基础day03_存储引擎和外键-MySQL 5.6 外键的条件: 1,表的存储引擎为innodb存储引擎 2,表中外键字段的类型要与参考表的字段类型一致 3,外键字段要是索引类型中的一种 M ...

  3. C#与java的区别(继承,接口实现,指针,编译后形式,异常处理几个方面比较区别)

  4. luogu 3488 [POI2009]LYZ-Ice Skates 线段树 + 思维

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin), ...

  5. 【bzoj1146】[CTSC2008]网络管理Network

    题目描述: M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路由器和N-1条 ...

  6. window 连接服务器工具

    Xshell xftp 下载网址 以上两个软件均免费, 只需要邮件激活即可. 其中 xshell 主要用来连接服务器,方便使用命令行.xftp 方便传输文件.

  7. Qt Creator 启动失败 可能的解决办法

    用了一段时间Qt Creator莫名的打开失败   重装一遍,仍然不行: 网上搜到解决办法:删除 ~\AppData\Roaming\QtProject文件夹. linux下:~是/home/Your ...

  8. Spring Cloud教程(十一)环境变化和刷新范围

    应用程序将收听EnvironmentChangeEvent,并以几种标准方式进行更改(用户可以以常规方式添加ApplicationListeners附加ApplicationListeners).当观 ...

  9. [CSP-S模拟测试]:毛三琛(随机化+二分答案)

    题目传送门(内部题69) 输入格式 第一行正整数$n,P,k$.第二行$n$个自然数$a_i$.$(0\leqslant a_i<P)$. 输出格式 仅一个数表示最重的背包的质量. 样例 样例输 ...

  10. 北风设计模式课程---依赖倒置原则(Dependency Inversion Principle)

    北风设计模式课程---依赖倒置原则(Dependency Inversion Principle) 一.总结 一句话总结: 面向对象技术的根基:依赖倒置原则(Dependency Inversion ...