从零开始学编程_第A001期_C语言HelloWorld详解
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详解的更多相关文章
- 从零开始学安全(五)●Vmware虚拟机三种网络模式详解
vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). NAT(网络地址转换模式) NAT(网络地址转换)vm ...
- 为什么大部分的程序员学编程,都会选择从C语言开始?
软件行业经过几十年的发展,编程语言的种类已经越来越多了,而且很多新的编程语言已经在这个领域从开始的默默无闻到如今风风火火,整个编程语言朝着集成化方向发展,这样会导致很多的初学者选择上不像以前那么单一了 ...
- 【和我一起学python吧】Python安装、配置图文详解
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...
- 【Unity编程】Unity中关于四元数的API详解
本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...
- C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》
前面说了写关于数组和指针的内容,这次在这里讨论一下字符串,讨论一下C语言风格的字符串. 在C语言里面我们利用字符数组来对字符串进行处理, 在C++里面我们前面说过一种类类型string可以对字符串进行 ...
- 全国计算机等级考试二级教程-C语言程序设计_第12章_C语言中用户标识符的作用域和存储类
生命周期的概念,也就是生存期,仅仅适用于变量. 代码.常量.定义等等都是与程序共存亡的,他们的生命周期就是程序的生命周期. 静态分配:生命周期是整个程序执行周期,内存会一直存在,在main函数执行之前 ...
- 学数据库还不会Select,SQL Select详解,单表查询完全解析?
查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式> .. ...
- Java并发编程(06):Lock机制下API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.Lock体系结构 1.基础接口简介 Lock加锁相关结构中涉及两个使用广泛的基础API:ReentrantLock类和Condition接 ...
- 嵌入式应用中CGI编程中POST、GET及环境变量详解
原载地址:http://3633188.blog.51cto.com/3623188/828095 1.POST和GET 一个CGI程序在于服务器之间的信息传输和数据传输一般通过两种方法,即 ...
随机推荐
- DevExpress ASP.NET Core Controls 2019发展蓝图(No.6)
本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...
- Linux发行版和内核版本
1./etc/issue 和 /etc/redhat-release都是系统安装时默认的发行版本信息,通常安装好系统后文件内容不会发生变化. 2.lsb_release -a :FSG(Free St ...
- CobaltStrike + Metasploit 联动使用
本节的知识摘要: 通过 beacon内置的 socks功能将本地 Msf直接代入目标内网 借助 CobaltStrike的外部 tcp监听器通过 ssh隧道直接派生一个 meterpreter到本地 ...
- Hybris commerce产品主数据的搜索API,批量返回若干主数据的值
新建一个产品,identifier设置为i042416-1,创建之后立即能够在Backoffice里搜索出来: 等到Storefront的indexing做完之后,前台通过关键字i042416也能将这 ...
- 【微信小程序】使用vscode编写微信小程序项目
1. 在微信开发者工具(以下简称:开发者)中新建一个模板微信小程序 2. 在开发者中将模拟器分隔开 3. 设置在保存时编译 4. 在vscode中打开项目目录 5. 下载代码提示插件 这样就可以在vs ...
- Python 面试问题
Python 面试问题 最近正在团队内部普及 Python 语言,有些刚接触 Python 语言的工程师在概念上有很多混淆的地方,刚好看到这篇文章:Python面试问题,里面列举的问题都是关于 Pyt ...
- 倍增求LCA算法详解
算法介绍: 看到lca问题(不知道lca是什么自(bang)行(ni)百度),不难想到暴力的方法: 先把两点处理到同一深度,再让两点一个一个祖先往上找,直到找到一个相同的祖先: 这么暴力的话,时间复杂 ...
- 【bzoj3038】上帝造题的七分钟2
*题目描述: XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. “第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对一段数中每个数都开平 ...
- python魔法属性
1.__doc__:表示类的描述信息 class Person(object): '''定义人的类''' def func(self): pass print(Person.__doc__) 结果为: ...
- ionic slide组件使用
ionic学习使用笔记 slide 组件的使用 开始做的时候,遇到了个要用ionic实现 有一系列的序列需要展示,但是当前页面上只能展示一小部分,剩余的在没有出现时是隐藏的,还得能滑动出现,但是又 ...