Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
beginnersbook-zh
提交
6216d756
B
beginnersbook-zh
项目概览
OpenDocCN
/
beginnersbook-zh
10 个月 前同步成功
通知
0
Star
107
Fork
30
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
beginnersbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6216d756
编写于
8月 20, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-08-20 15:36:26
上级
c4b4e496
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
98 addition
and
95 deletion
+98
-95
docs/cpp/3.md
docs/cpp/3.md
+1
-1
docs/cpp/4.md
docs/cpp/4.md
+12
-12
docs/cpp/5.md
docs/cpp/5.md
+9
-9
docs/cpp/6.md
docs/cpp/6.md
+65
-63
docs/cpp/8.md
docs/cpp/8.md
+11
-10
未找到文件。
docs/cpp/3.md
浏览文件 @
6216d756
...
...
@@ -2,7 +2,7 @@
> 原文: [https://beginnersbook.com/2017/08/first-cpp-program/](https://beginnersbook.com/2017/08/first-cpp-program/)
在本指南中,我们将编写和理解
**在 C++**
编程中的第一个程序。我们正在编写一个打印
`Hello World
!
`
消息的简单 C++程序。让我们先看看程序,然后我们将详细讨论它的每一部分。
在本指南中,我们将编写和理解
**在 C++**
编程中的第一个程序。我们正在编写一个打印
`Hello World
!
`
消息的简单 C++程序。让我们先看看程序,然后我们将详细讨论它的每一部分。
## C++中的`Hello World`程序
...
...
docs/cpp/4.md
浏览文件 @
6216d756
...
...
@@ -2,7 +2,7 @@
> 原文: [https://beginnersbook.com/2017/08/cpp-variables/](https://beginnersbook.com/2017/08/cpp-variables/)
变量是与可以更改的值相关联的名称。例如,当我写
`int num=20;`
时,变量名是
num,它与值 20 相关联,int
是表示该变量可以保存整数值的数据类型。我们将在下一个教程中介绍数据类型。在本教程中,我们将讨论变量。
变量是与可以更改的值相关联的名称。例如,当我写
`int num=20;`
时,变量名是
`num`
,它与值 20 相关联,
`int`
是表示该变量可以保存整数值的数据类型。我们将在下一个教程中介绍数据类型。在本教程中,我们将讨论变量。
## 在 C++中声明变量的语法
...
...
@@ -28,15 +28,15 @@ num2=100;
变量可以根据其数据类型进行分类。例如,在上面的例子中,我们看到了整数类型变量。以下是 C++中可用的变量类型。
**
int
**
:这些类型的变量保存整数值。
**
`int`
**
:这些类型的变量保存整数值。
**
char**
:保存字符值,如'c','F','B','p','q'
等。
**
`char`**
:保存字符值,如
`'c'`
,
`'F'`
,
`'B'`
,
`'p'`
,
`'q'`
等。
**
bool**
:保持布尔值为 true 或 false
。
**
`bool`**
:保持布尔值为
`true`
或
`false`
。
**
double
**
:双精度浮点值。
**
`double`
**
:双精度浮点值。
**
float
**
:单精度浮点值。
**
`float`
**
:单精度浮点值。
## 基于作用域的变量类型
...
...
@@ -50,7 +50,7 @@ int main {
}
```
在这些花括号内声明的任何变量都限制在这些花括号中,如果你在
main()函数中声明一个变量并尝试在 main()
函数之外使用该变量,那么你将得到编译错误。
在这些花括号内声明的任何变量都限制在这些花括号中,如果你在
`main()`
函数中声明一个变量并尝试在
`main()`
函数之外使用该变量,那么你将得到编译错误。
现在我们已经理解了什么是作用域。让我们根据作用域转向变量类型。
...
...
@@ -59,13 +59,13 @@ int main {
### 全局变量
在任何函数之外声明的变量(包括
main
)也称为全局变量。全局变量在整个程序中都有它们的作用域,它们可以在程序的任何地方,主要的,用户定义的函数中的任何地方访问。
在任何函数之外声明的变量(包括
`main`
)也称为全局变量。全局变量在整个程序中都有它们的作用域,它们可以在程序的任何地方,主要的,用户定义的函数中的任何地方访问。
让我们举个例子来理解它:
#### 全局变量示例
这里我们有一个全局变量
`myVar`
,它在
main 之外声明。我们在 main()
函数中访问了变量两次而没有任何问题。
这里我们有一个全局变量
`myVar`
,它在
`main`
之外声明。我们在
`main()`
函数中访问了变量两次而没有任何问题。
```
cpp
#include <iostream>
...
...
@@ -90,7 +90,7 @@ Value of myVar: Z
### 局部变量
局部变量在任何用户定义函数,主函数,循环或任何控制语句(
如果,if-else
等)的大括号内声明,并且其作用域限制在这些大括号内。
局部变量在任何用户定义函数,主函数,循环或任何控制语句(
`if`
,
`if-else`
等)的大括号内声明,并且其作用域限制在这些大括号内。
#### 局部变量的例子
...
...
@@ -112,7 +112,7 @@ int main()
```
**输出:**
编译时错误,因为我们试图访问其作用域之外的变量
`myVar`
。
`myVar`
的作用域仅限于这些括号内的
功能
体
`myFuncn()`
。
编译时错误,因为我们试图访问其作用域之外的变量
`myVar`
。
`myVar`
的作用域仅限于这些括号内的
函数
体
`myFuncn()`
。
## 全局变量和局部变量可以在 C++中具有相同的名称吗?
...
...
@@ -148,4 +148,4 @@ Funcn call: B
Value
of
myVar
:
Z
```
正如您所看到的,当我在 main 函数中更改
`myVar`
的值时,它只更改了全局变量
`myVar`
的值,因为局部变量
`myVar`
作用域仅限于函数
`myFuncn()`
。
\ No newline at end of file
正如您所看到的,当我在
`main`
函数中更改
`myVar`
的值时,它只更改了全局变量
`myVar`
的值,因为局部变量
`myVar`
作用域仅限于函数
`myFuncn()`
。
\ No newline at end of file
docs/cpp/5.md
浏览文件 @
6216d756
...
...
@@ -9,44 +9,44 @@ C++中的数据类型分为三组:**内置**,**用户定义**和**派生**
## 内置数据类型
**
char**
:适用于角色
。大小 1 个字节。
**
`char`**
:适用于字符
。大小 1 个字节。
```
cpp
char
ch
=
'A'
;
```
**
int
**
:对于整数。大小 2 个字节。
**
`int`
**
:对于整数。大小 2 个字节。
```
cpp
int
num
=
100
;
```
**
float
**
:用于单精度浮点数。大小 4 个字节。
**
`float`
**
:用于单精度浮点数。大小 4 个字节。
```
cpp
float
num
=
123.78987
;
```
**
double
**
:用于双精度浮点数。大小为 8 个字节。
**
`double`
**
:用于双精度浮点数。大小为 8 个字节。
```
cpp
double
num
=
10098.98899
;
```
**
bool
**
:对于布尔,无论是真还是假。
**
`bool`
**
:对于布尔,无论是真还是假。
```
cpp
bool
b
=
true
;
```
**
wchar_t
**
:宽字符。应该避免这种情况,因为它的大小是实现定义的并且不可靠。
**
`wchar_t`
**
:宽字符。应该避免这种情况,因为它的大小是实现定义的并且不可靠。
## 用户定义的数据类型
我们在 C++中有三种类型的用户定义数据类型
1
\.
struct
2
\.
union
3
\.
enum
1
\.
`struct`
2
\.
`union`
3
\.
`enum`
我在单独的教程中详细介绍了它们。现在只记得它们属于用户定义的数据类型。
...
...
docs/cpp/6.md
浏览文件 @
6216d756
...
...
@@ -2,7 +2,7 @@
> 原文: [https://beginnersbook.com/2017/08/cpp-operators/](https://beginnersbook.com/2017/08/cpp-operators/)
运算符代表一个行动。例如,
+是表示加法的运算符。运算符处理两个或多个操作数并生成输出。例如 3 + 4 + 5 这里+
运算符在三个操作数上工作并产生 12 作为输出。
运算符代表一个行动。例如,
`+`
是表示加法的运算符。运算符处理两个或多个操作数并生成输出。例如
`3 + 4 + 5`
,这里
`+`
运算符在三个操作数上工作并产生 12 作为输出。
## C++中的运算符类型
...
...
@@ -18,17 +18,17 @@
## 1)基本算术运算符
基本算术运算符为:
+, - ,
*
,/,%
**
+
**
用于加法。
基本算术运算符为:
`+ - * / %`
**
`+`
**
用于加法。
**
-
**
用于减法。
**
`-`
**
用于减法。
**
*
*
*
用于乘法。
**
`*`
**
用于乘法。
**
/**
用于划分
。
**
`/`**
用于除法
。
**
%
**
用于模数。
**注**
:模运算符返回余数,例如
20%5
将返回 0
**
`%`
**
用于模数。
**注**
:模运算符返回余数,例如
`20%5`
将返回 0
### 算术运算符的例子
...
...
@@ -59,19 +59,19 @@ num1 % num2: 0
## 2)赋值运算符
C++中的赋值运算符是:
=,+ =, - =,
*
=,/ =,%=
C++中的赋值运算符是:
`= += -= *= /= %=`
**
num2 = num1**
将变量 num1
的值赋给变量。
**
`num2 = num1`**
将变量
`num1`
的值赋给变量。
**
num2 + = num1**
等于 num2 = num2 + num1
**
`num2 += num1`**
等于
`num2 = num2 + num1`
**
num2- = num1**
等于 num2 = num2-num1
**
`num2 -= num1`**
等于
`num2 = num2 - num1`
**
num2 * = num1**
等于 num2 = num2
*
num1
**
`num2 *= num1`**
等于
`num2 = num2 * num1`
**
num2 / = num1**
等于 num2 = num2 / num1
**
`num2 /= num1`**
等于
`num2 = num2 / num1`
**
num2%= num1**
等于 num2 = num2%num1
**
`num2 %= num1`**
等于
`num2 = num2 % num1`
### 赋值运算符的示例
...
...
@@ -111,10 +111,10 @@ int main(){
## 3)自增和自减运算符
++和 -
num ++相当于 num = num + 1;
`++`
和
`--`
`num++`
相当于
`num = num + 1;`
num--相当于 num = num-1;
`num--`
相当于
`num = num - 1;`
### 自增和自减运算符的示例
...
...
@@ -143,15 +143,15 @@ num2-- is: 39
逻辑运算符与二进制变量一起使用。它们主要用于条件语句和循环以评估条件。
C++中的逻辑运算符是:
&&
,|| ,!
C++中的逻辑运算符是:
`&& || !`
假设我们有两个布尔变量
b1 和 b2
。
假设我们有两个布尔变量
`b1`
和
`b2`
。
如果
b1 和 b2 都为真,则
**b1&& b2**
将返回 true,否则它将返回 false
。
如果
`b1`
和
`b2`
都为真,则
`b1 && b2`
将返回
`true`
,否则它将返回
`false`
。
如果
b1 和 b2 都为假,则
**b1 || b2**
将返回 false,否则返回 true
。
如果
`b1`
和
`b2`
都为假,则
`b1 || b2`
将返回
`false`
,否则返回
`true`
。
**!b1**
将返回与 b1 相反的位置,这意味着如果 b1 为假则为真,如果 b1 为真则返回 false
。
`!b1`
将返回与
`b1`
相反的位置,这意味着如果
`b1`
为假则为真,如果
`b1`
为真则返回
`false`
。
### 逻辑运算符的示例
...
...
@@ -178,19 +178,19 @@ b1 || b2: 1
## 5)关系运算符
我们在 C++中有六个关系运算符:
==,!=,
>
,
<
,
>
=,
<
=
我们在 C++中有六个关系运算符:
`== != > < >= <=`
如果左侧和右侧都相等,则
**==**
返回 true
如果左侧和右侧都相等,则
`==`
返回
`true`
**!=**
如果左侧不等于运算符的右侧,则
返回 true。
如果左侧不等于右侧,则
`!=`
返回 true。
**>如果左侧大于右侧,**
返回 true
。
如果左侧大于右侧,
`>`
返回
`true`
。
**<如果左侧小于右侧,**
返回 true
。
如果左侧小于右侧,
`<`
返回
`true`
。
如果左侧大于或等于右侧,则
**> =**
返回 true
。
如果左侧大于或等于右侧,则
`>=`
返回
`true`
。
如果左侧小于或等于右侧,则
**< =**
返回真
。
如果左侧小于或等于右侧,则
`<=`
返回
`true`
。
### 关系运算符的示例
...
...
@@ -254,7 +254,7 @@ num1 is greater than num2
## 6)按位运算符
有六个按位运算符:
&
,|,^,〜,
<<>>>
有六个按位运算符:
`& | ^ ~ << >>`
```
cpp
num1
=
11
;
/* equal to 00001011*/
...
...
@@ -262,19 +262,19 @@ num2 = 22; /* equal to 00010110 */
```
按位运算符执行逐位处理。
**num1& num2**
比较 num1 和 num2 的相应位,如果两个位相等则生成 1,否则返回 0.在我们的例子中它将返回:2,这是 00000010,因为在 num1 和 num2 的二进制形式中,只有倒数第二位是
匹配。
`num1 & num2`
比较
`num1`
和
`num2`
的相应位,如果两个位相等则生成 1,否则返回 0.在我们的例子中它将返回:2,这是
`00000010`
,因为在
`num1`
和
`num2`
的二进制形式中,只有倒数第二位
匹配。
**num1 | num2**
比较 num1 和 num2 的相应位,如果任一位为 1,则生成 1,否则返回 0.在我们的例子中,它将返回 31,即 00011111
`num1 | num2`
比较
`num1`
和
`num2`
的相应位,如果任一位为 1,则生成 1,否则返回 0.在我们的例子中,它将返回 31,即
`00011111`
**num1 ^ num2**
比较 num1 和 num2 的相应位,如果它们不相等则生成 1,否则返回 0.在我们的例子中它将返回 29,相当于 00011101
`num1 ^ num2`
比较
`num1`
和
`num2`
的相应位,如果它们不相等则生成 1,否则返回 0.在我们的例子中它将返回 29,相当于
`00011101`
**~num1**
是一个补码运算符,只是将位从 0 更改为 1,1 更改为 0.在我们的示例中,它将返回-12,其中 8 位等效于 11110100
**num1<< 2**
是左移位运算符,它将位移到左边,丢弃最左边的位,并将最右边的位赋值为 0.在我们的例子中,输出为 44,相当于 00101100
`num1 << 2`
是左移位运算符,它将位移到左边,丢弃最左边的位,并将最右边的位赋值为 0.在我们的例子中,输出为 44,相当于
`00101100`
注意:在下面的示例中,我们在此移位运算符的右侧提供 2,这是位向左移动两个位置的原因。我们可以更改此数字,并且位将按运算符右侧指定的位数移动。同样适用于右侧运算符。
**num1>> 2**
是右移位运算符,它将位向右移动,丢弃最右位,并将最左边的位指定为 0.在我们的例子中,输出为 2,相当于 00000010
`num1 >> 2`
是右移位运算符,它将位向右移动,丢弃最右位,并将最左边的位指定为 0.在我们的例子中,输出为 2,相当于
`00000010`
### 按位运算符的示例
...
...
@@ -320,7 +320,7 @@ num1 << 2: 44 num1 >> 2: 2
variable
num1
=
(
expression
)
?
value
if
true
:
value
if
false
```
如果表达式结果为
true,则将冒号(:)之前的第一个值分配给变量 num1,否则将第二个值分配给 num1
。
如果表达式结果为
`true`
,则将冒号(
`:`
)之前的第一个值分配给变量
`num1`
,否则将第二个值分配给
`num1`
。
### 三元运算符的例子
...
...
@@ -354,46 +354,48 @@ num2: 100
## 杂项运算符
C++中很少有其他运算符,如
**逗号运算符**
和
**
sizeof
运算符**
。我们将在单独的教程中详细介绍它们。
C++中很少有其他运算符,如
**逗号运算符**
和
**
`sizeof`
运算符**
。我们将在单独的教程中详细介绍它们。
## C++中的运算符优先级
如果表达式具有多个运算符,则确定首先需要对哪个运算符求值。操作符在顶部具有较高优先级,在底部具有较低优先级。
**一元运算符**
++ - - ! 〜
`++ -- ! ~`
**乘法**
*
/%
`* / %`
**
添加剂
**
+
-
**
加法
**
`+ -`
**
Shift
**
<<
>>
>>>
**
移位
**
`<< >>`
**关系**
>
>
=
<
< =
`< <= > >=`
**相等**
==!=
**
按位和
**
&
**按位 XOR**
^
**
按位 OR
**
|
**逻辑 AND**
&&
**逻辑 OR**
||
`== !=`
**位与**
`&`
**位异或**
`^`
**位或**
`|`
**逻辑与**
`&&`
**逻辑或**
`||`
**三元**
?:
`?:`
**作业**
= + = - =
*
= / =%=
>
>
=
<
<
=
&
= ^ = | =
\ No newline at end of file
**赋值**
`= += -= *= /= %= >>= <<= &= ^= |=`
\ No newline at end of file
docs/cpp/8.md
浏览文件 @
6216d756
...
...
@@ -11,7 +11,7 @@ d)`if-else-if`语句
## C++中的`if`语句
如果
语句包含条件,则后跟语句或一组语句,如下所示:
`if`
语句包含条件,则后跟语句或一组语句,如下所示:
```
cpp
if
(
condition
){
...
...
@@ -19,10 +19,11 @@ if(condition){
}
```
如果括号(通常称为 body)中的
**内的语句仅在给定条件为真时才执行。如果条件为假,则完全忽略 body
中的语句。**
`if`
括号(通常称为正文)中的语句仅在给定条件为真时才执行。如果条件为假,则完全忽略正文
中的语句。
**
**If 语句**
![
if statement flow diagram
](
img/ca9f4c074ebed9fc7f607d633084f31b.jpg
)
的流程图
**`if`语句**
的流程图
![
if statement flow diagram
](
img/ca9f4c074ebed9fc7f607d633084f31b.jpg
)
### `if`语句的示例
...
...
@@ -56,7 +57,7 @@ number is less than 100
## C++中的嵌套`if`语句
当在另一个
if 语句中有 if 语句时,它被称为
**嵌套 if
语句**
。
当在另一个
`if`
语句中有
`if`
语句时,它被称为
**嵌套`if`
语句**
。
嵌套的结构如下所示:
```
cpp
...
...
@@ -100,9 +101,9 @@ number is greater than 50
## 在 C++中使用`if-else`语句
有时你有一个条件,如果条件为真,你想要执行一段代码,如果相同的条件为假,则执行另一段代码。这可以使用
if-else
语句在 C++中实现。
有时你有一个条件,如果条件为真,你想要执行一段代码,如果相同的条件为假,则执行另一段代码。这可以使用
`if-else`
语句在 C++中实现。
这是
if-else
语句的外观:
这是
`if-else`
语句的外观:
```
cpp
if
(
condition
)
{
...
...
@@ -113,7 +114,7 @@ else {
}
```
如果条件为真,则
“if”内的语句将执行,如果条件为假,则“else”
内的语句将执行。
如果条件为真,则
`if`
内的语句将执行,如果条件为假,则
`else`
内的语句将执行。
**if-else**
![
If else flow diagram
](
img/bf82c60917e1862b555f7352ea40b919.jpg
)
的流程图
...
...
@@ -145,7 +146,7 @@ num is greater than or equal 50
## C++中的`if-else-if`语句
当我们需要检查多个条件时使用
if-else-if 语句。在这个控制结构中,我们只有一个“if”和一个“else”,但是我们可以有多个“else if”
块。这是它的样子:
当我们需要检查多个条件时使用
`if-else-if`
语句。在这个控制结构中,我们只有一个
`if`
和一个
`else`
,但是我们可以有多个
`else if`
块。这是它的样子:
```
cpp
if
(
condition_1
)
{
...
...
@@ -175,7 +176,7 @@ else {
}
```
**注意:**
这里要注意的最重要的一点是,在
if-else-if 中,只要满足条件,就会执行相应的语句集,忽略 rest。如果没有满足条件,则执行“else”
内的语句。
**注意:**
这里要注意的最重要的一点是,在
`if-else-if`
中,只要满足条件,就会执行相应的语句集,忽略其余。如果没有满足条件,则执行
`else`
内的语句。
### `if-else-if`的示例
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录