从零开始学编程_第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程序在于服务器之间的信息传输和数据传输一般通过两种方法,即 ...
随机推荐
- 浅析拯救小矮人的 nlogn 算法及其证明
浅析拯救小矮人的 nlogn 算法及其证明 题型简介: 有 $ n $ 个人,第 $ i $ 个人身高 $ a_i $ 手长 $ b_i $ ,他们为了从一个高为 $ H $ 的洞中出去,决定搭人梯. ...
- 使用RAP2模拟假数据实现前后端分离
一.为什么使用RAP2 在一个项目的开发中,在页面需要使用大量数据进行渲染生成前,后端开发人员的接口可能还没有写完, 当前端没有后端数据支持的情况下,我们使用mock.js(mock.js用于生成随机 ...
- Python---进阶---logging---装饰器打印日志
#### logging - logging.debug - logging.info - logging.warning - logging.error - logging.critical --- ...
- linux运维、架构之路-Kubernetes本地镜像仓库+dashboard部署
一.部署docker registry 生产环境中我们一般通过搭建本地的私有镜像仓库(docker registry)来拉取镜像. 1.拉取registry镜像 [root@k8 ...
- C#与.NET Framework c#编程语言,和java是一样的。(c#,java) -->javaweb,asp.net
- spring boot不要放在tomcat下启动,因为自身就带了集成tomcat
spring boot不要放在tomcat下启动,因为自身就带了集成tomcat
- ExoPlayer + 边缓存边播放
在此基础上改动:https://www.cnblogs.com/candyzhmm/p/9957928.html private void openPlayer(String videoUrl) { ...
- Java大文件上传详解及实例代码
1,项目调研 因为需要研究下断点上传的问题.找了很久终于找到一个比较好的项目. 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面. http ...
- HDU 1298 T9 ( 字典树 )
题意 : 给你 w 个单词以及他们的频率,现在给出模拟 9 键打字的一串数字,要你在其模拟打字的过程中给出不同长度的提示词,出现的提示词应当是之前频率最高的,当然提示词不需要完整的,也可以是 w 个单 ...
- 【bzoj3463】[COCI2012] Inspector
*题目描述: 在一个小国家中,一个新的小镇终于建成了!如往常一样,Mirko获得了“首席税务巡查员”的职位.他的任务是保证正确地计算各公司的收入情况.一共有N家办公室坐落在主干道上,从左到右被编号为1 ...