提交 6216d756 编写于 作者: W wizardforcel

2019-08-20 15:36:26

上级 c4b4e496
......@@ -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`程序
......
......@@ -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
......@@ -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`
我在单独的教程中详细介绍了它们。现在只记得它们属于用户定义的数据类型。
......
......@@ -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++中的逻辑运算符是:&amp;&amp;,|| ,!
C++中的逻辑运算符是:`&& || !`
假设我们有两个布尔变量 b1 和 b2
假设我们有两个布尔变量`b1``b2`
如果 b1 和 b2 都为真,则 **b1&amp;&amp; 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++中有六个关系运算符:==,!=,&gt;&lt;&gt; =,&lt; =
我们在 C++中有六个关系运算符:`== != > < >= <=`
如果左侧和右侧都相等,则 **==** 返回 true
如果左侧和右侧都相等,则`==`返回`true`
**!=** 如果左侧不等于运算符的右侧,则返回 true。
如果左侧不等于右侧,则`!=`返回 true。
**&gt;如果左侧大于右侧,**返回 true
如果左侧大于右侧,`>`返回`true`
**&lt;如果左侧小于右侧,**返回 true
如果左侧小于右侧,`<`返回`true`
如果左侧大于或等于右侧,则**&gt; =** 返回 true
如果左侧大于或等于右侧,则`>=`返回`true`
如果左侧小于或等于右侧,则**&lt; =** 返回真
如果左侧小于或等于右侧,则`<=`返回`true`
### 关系运算符的示例
......@@ -254,7 +254,7 @@ num1 is greater than num2
## 6)按位运算符
有六个按位运算符:&amp;,|,^,〜,&lt;&lt;&gt;&gt;&gt;
有六个按位运算符:`& | ^ ~ << >>`
```cpp
num1 = 11; /* equal to 00001011*/
......@@ -262,19 +262,19 @@ num2 = 22; /* equal to 00010110 */
```
按位运算符执行逐位处理。
**num1&amp; 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&lt;&lt; 2** 是左移位运算符,它将位移到左边,丢弃最左边的位,并将最右边的位赋值为 0.在我们的例子中,输出为 44,相当于 00101100
`num1 << 2`是左移位运算符,它将位移到左边,丢弃最左边的位,并将最右边的位赋值为 0.在我们的例子中,输出为 44,相当于`00101100`
注意:在下面的示例中,我们在此移位运算符的右侧提供 2,这是位向左移动两个位置的原因。我们可以更改此数字,并且位将按运算符右侧指定的位数移动。同样适用于右侧运算符。
**num1&gt;&gt; 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**
&lt;&lt; &GT;&GT; &GT;&GT;&GT;
**移位**
`<< >>`
**关系**
&gt; &gt; =&lt; &LT =
`< <= > >=`
**相等**
==!=
**
按位和**
&amp;
**按位 XOR**
^
**
按位 OR**
|
**逻辑 AND**
&amp;&amp;
**逻辑 OR**
||
`== !=`
**位与**
`&`
**位异或**
`^`
**位或**
`|`
**逻辑与**
`&&`
**逻辑或**
`||`
**三元**
?:
`?:`
**作业**
= + = - = * = / =%=&gt; &gt; =&lt; &lt; =&amp; = ^ = | =
\ No newline at end of file
**赋值**
`= += -= *= /= %= >>= <<= &= ^= |=`
\ No newline at end of file
......@@ -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.
先完成此消息的编辑!
想要评论请 注册