#include <iostream>
int main()
{
using namespace std;
cout << "Hello world" << endl; //输出“Hello world”
return 0;
}
一、预处理器
预处理器
定义:在编译之前,每个代码 (.cpp) 文件都会经历预处理阶段。
这个程序使用了最常用的预处理器命令:
#include <头文件>
注:结尾不含分号。
为什么要使用 iostream呢?
这就涉及头文件了
头文件
头文件是一个包含C或C++程序中各种声明的文件,通常以
.h
或.hpp
为后缀。头文件主要用于声明函数、变量、类、结构体、宏定义等,方便代码的复用和模块化。它可以帮助程序员将代码组织得更加清晰,将实现部分与声明部分分离。
iostream头文件
iostream 中的 i 表示输入( Input ),o 表示输出( Output )。
所以,iostream 头文件由两部分组成:
- 输入流(istream):用于从输入设备(如键盘、文件)读取数据。
- 输出流(ostream):用于将数据输出到设备(如屏幕、文件)。
但是,什么是流呢?
在 C++ 中,流是一种抽象的输入/输出数据的机制。流使得数据的输入和输出看起来像流水一样顺畅,程序可以通过流将数据从输入设备(如键盘、文件)读取到内存中,或将数据从内存输出到输出设备(如屏幕、文件)。
其他的头文件
头文件名 | 作用 |
---|---|
<iostream> | 标准输入输出流 |
<fstream> | 文件输入输出流 |
<array> | 定长数组容器 |
<vector> | 动态数组容器 |
<cmath> | 数学函数 |
<string> | 标准字符串类 |
对于头文件感兴趣者可参见:
二、命名空间
using namespace std;
这叫做 using 编译指令。最简单的办法是,现在接受这个编译指令,以后再考虑他。但这里还是简要地介绍它,以免您一头雾水。
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
三、main( ) 函数
int main()
{
cout << "Hello world" << endl;
return 0;
}
看到这里,很多出学者可能一头雾水
什么是函数?
很多人对函数的认识还停留在初中知识一次函数,事实上,C++中的函数和数学的函数有一定的相似之处。
特性 | 数学函数 | C++函数 |
---|---|---|
输入 | 接受一个或多个数值 | 接受多个数据类型(整数、字符串、对象等) |
输出 | 返回一个确定的数值 | 返回一个或多个值,可以是任意类型 |
副作用 | 通常没有副作用 | 可以有副作用,如修改变量、输出结果等 |
确定性 | 对相同输入始终返回相同结果 | 可能有状态依赖和副作用,结果不一定相同 |
用途 | 描述数学关系 | 处理各种操作:计算、I/O、修改状态等 |
https://www.zhihu.com/question/305981549https://www.zhihu.com/question/305981549
通俗地来讲,函数像一个一个黑盒子,它接收一些输入数据(参数),执行某种操作或计算,然后产生并返回一个输出(返回值)。这是函数的核心功能和理念。
而专业的说法是这样的:
函数是执行某种操作的代码块。 函数可以选择性地定义使调用方可以将实参传递到函数中的输入形参。 函数可以选择性地返回值作为输出。 函数可用于在单个可重用块中封装常用操作(理想情况是使用可清晰地描述函数行为的名称)。
1.作为接口的函数头
- int 表示 main() 的返回值是一个整数。
- 函数名后的空括号 是 参数列表/形参列表。这里的空括号表示函数不接受任何参数。
也可以使用下面两种形式:
int main(void)
void main()
这两个函数头都使用了关键字 void 。
关键字(keyword)属于保留字,是整个语言范围内预先保留的标识符。每个C++关键字都有特殊的含义。经过预处理后,关键字从预处理记号(preprocessing-token)中区别出来,剩下的标识符作为记号(token),用于声明对象、函数、类型、命名空间等。不能声明与关键字同名的标识符。
关键字 void 表示特殊的“空”类型,指定函数无参数或无返回值。
例如,在前者中,void 表示这个函数不接受任何参数,和空括号意义相同;后者中 void 表示这个函数无返回值。
2.必不可少的 main()
首先要树立一个意识:
在 C++ 中,一个程序中,必需有且仅有一个 main() 函数。并且,大小写及拼写要正确。
3.函数体
函数体(function body)是包含指定函数行为的语句的复合语句,由{和}括起,由语句构成。
语句是什么?下篇博客再细讲。
4.给自己的注释
为什么这样说?有编程经历的的都知道,很多情况下,会出现自己写的代码,一天之后自己都看不明白了的情况(悲)。为了避免这种情况,写注释是一个很好的习惯。
注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。注释只是为了提高可读性,不会被计算机编译。
C++风格注释
//注释注释注释
C++风格注释以双斜杠打头,到行尾结束,所以只能在一行内使用。
C风格注释
/* 注释注释注释 */
C风格的注释以 */ 结束,所以可以跨越多行。
/* 注释
注释
注释*/
四、cout(读作 see out)
cout << "Hello world";
由双引号括起来的是字符串,<< 符号表示将这个字符串发给 cout,cout将它输出。
在使用 cout 之前,必须引用 iostream 头文件,也就是说,cout 属于输出流的一种。
也就是说,这条语句的意义是将一个字符串插入到了输出流当中。
可是,输出之后,该如何换行呢?
cout << "Hello world" << endl;
cout << "Hello world\n";
两种方式都可以完成换行。然而,输入 endl 更方便。
对于 cout 的其他内容,下一篇博客再细讲。
五、C++源代码风格
在编写代码时,多数程序员遵守以下规则:
- 每条语句独占一行。
- 每个函数都有一个开始花括号和结束花括号,这两个花括号独占一行。
- 函数中的语句都有相对于花括号进行的缩进。
- 与函数名称相关的圆括号周围没有空格。
遵守这些规则,会让代码更清晰易懂。
六、共勉
本篇博客是自我学习笔记,如果后续能够有人能够从中汲取到知识和收获,这也是我所希望的。如果有读者不懂或有问题的话,欢迎提出来,让我们一起讨论。同时,我将继续更新 C++ 入门学习系列笔记,敬请期待。
谢谢!叶宝镇楼