此教程是为了让一些有编程基础的人快速入门 C++ 的,所以比较简洁,不会有详细解释
注:由于 Markdown 显示的问题,下文所有表格里如果出现 |
符号,将会显示成 \|
,请大家谅解
C/C++ 编辑器
以下三个是比较常用的 C++ 编辑器
- VSCode
- Dev-C++
- Vim
下载链接分别是:
作者首推 VSCode,然后是 Dev-C++
代码模板
#include<bits/stdc++.h> //头文件
using namespace std; //名字空间
int main(){ //主函数
cout<<"Hello! World!\n";
return 0;
}
头文件
调用头文件:#include<文件名>
万能头:#include<bits/stdc++.h>
万能头几乎包含所有常用头文件,除了 windows.h
定义变量
关键字
像 int
long
double
bool
string
char
等都是 C++ 定义变量的关键字
int a;
定义一个整型 a
string a;
定义一个字符串 a
下表列出了许多类型的范围、占空间大小
类型 | 字节数 | 范围 |
---|---|---|
char | 1 | -128 到 127 |
unsigned char | 1 | 0 到 255 |
int | 4 | -2,147,483,648 到 2,147,483,647 |
unsigned int | 4 | 0 到 4,294,967,295 |
short int | 2 | -32,768 到 32,767 |
unsigned short int | 2 | 0 到 65,535 |
long long | 8 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long long | 8 | 0 to 18,446,744,073,709,551,615 |
float | 4 | -3.4e38 到 3.4e38 (7 位有效数字) |
double | 8 | -1.7e308 到 1.7e308 (15 位有效数字) |
long double | 16 | -1.7e308 到 1.7e308 (18-19位有效数字) |
变量名规则
C++ 变量名只能由字母、数字和下划线组成,且第1个字符必须是字母或下划线。
例如
sum
a
i
num
xl
area
_total
等都是合法的变量名而
2A
al
x l
100
f**k
等都不是合法的变量名。C++ 严格区分大小写字母,因此
sum
和Sum
被认为是不同的变量名。C++ 中,变量名不能与关键字重合,比如
int
是一个不合法的变量名。
运算符号
四则运算符
+ - * / %
对应 加、减、乘、除、模
++
--
为自增运算符,比如 A++
会使 A
的值 +1
注意:
++
--
分为前缀和后缀,A++
++A
都会使 A
的值 +1
但是,A++
会返回 +1
前的 A
值,而 ++A
会返回 +1
后的 A
值
比如 int A = 1; B = A++;
,B 的值为 1
而 int A = 1; B = ++A
,B 的值为 2
--
是一样的道理
关系运算符
符号 | 表示 |
---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真 |
逻辑运算符
符号 | 表示 |
---|---|
&& 逻辑与运算符 | 如果两个操作数都 true,则条件为 true |
\|\| 逻辑或运算符 | 如果两个操作数中有任意一个 true,则条件为 true |
! 逻辑非运算符 | 用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false |
位运算符
符号 | 表示 | 说明 |
---|---|---|
& | 按位与 | 按二进制位进行与运算 |
\| | 按位或 | 按二进制位进行或运算 |
^ | 异或 | 按二进制位进行异或运算 |
~ | 取反 | 按二进制位进行取反运算 |
<< | 左移 | 将一个运算对象的各二进制位全部左移若干位 |
>> | 右移 | 将一个运算对象的各二进制位全部右移若干位 |
赋值运算符
符号 | 说明 |
---|---|
= | 简单的赋值运算符,把右边操作数的值赋给左边操作数 |
+= | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 |
-= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 |
*= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 |
/= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 |
%= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 |
<<= | 左移且赋值运算符 |
>>= | 右移且赋值运算符 |
&= | 按位与且赋值运算符 |
^= | 按位异或且赋值运算符 |
\|= | 按位或且赋值运算符 |
举例:
A += B
等同于 A = A + B
A -= B
等同于 A = A - B
A *= B
等同于 A = A * B
A /= B
等同于 A = A / B
A %= B
等同于 A = A % B
A <<= B
等同于 A = A << B
A >>= B
等同于 A = A >> B
A &= B
等同于 A = A & B
A ^= B
等同于 A = A ^ B
A |= B
等同于 A = A | B
杂项运算符
符号 | 说明 |
---|---|
sizeof | 返回变量的大小 |
A ? B : C | 三目运算符 |
, | 逗号运算符会顺序执行一系列运算,返回最后一个值 |
. 和 -> | 成员运算符用于引用类、结构和共用体的成员 |
Cast | 强制转换运算符把一种数据类型转换为另一种数据类型 |
& | 返回变量的地址 |
* | 指针,指向一个变量 |
举例:
int a; sizeof(a);
中的 sizeof(a)
将返回 a
的大小,就是 4(字节)
A ? B ? C
如果 A
为真,那么返回 B
,否则返回 C
a++,b--,c*=2
返回的是 c*=2
的值
int(1.23)
会把 1.23
强制转换为 int
类型,也就是 1
&a
会返回 A
的地址
int *a = &b
*a
是一个指针,指向 b
的地址
优先级
级别 | 符号 | 结合性 |
---|---|---|
1 | () [] -> . a++ a-- | 从左到右 |
2 | + - ! ~ ++a --a (type) * & sizeof | 从右到左 |
3 | * / % | 从左到右 |
4 | + - | 从左到右 |
5 | << >> | 从左到右 |
6 | < <= > >= | 从左到右 |
7 | == != | 从左到右 |
8 | & | 从左到右 |
9 | ^ | 从左到右 |
10 | \| | 从左到右 |
11 | && | 从左到右 |
12 | \|\| | 从左到右 |
13 | ?: | 从右到左 |
14 | = += -= *= /= %= >>= <<= &= ^= \|= | 从右到左 |
15 | , | 从左到右 |
条件语句
写程序时,我们经常遇到这样的情况:
那么怎么用 C++ 代码实现呢?
使用 if
语句即可
int a=1,b=2;
if(a<b){
int t=a;
a=b;
b=t;
}
在这里,a<b
为真,于是执行大括号内的语句
但如果要这种情况呢?
聪明的朋友已经想到,可以这样实现:
int a=10,b=5,c;
bool f=0;
if(a<b){
c=a;
f=1;
}
if(f==0){
c=b;
}
但是,这样显然太麻烦了,于是我们可以使用 if else
语句
int a=10,b=5,c;
if(a<b){
c=a;
}else{
c=b;
}
在这里,a<b
为假,于是执行 else
后大括号内的语句
如果大括号内只有一个语句,我们可以把大括号去掉:
int a=10,b=5,c;
if(a<b)c=a;
else c=b;
因此,我们可以这样写代码:
int a=10,b=5,c=1,d;
if(a>b&&a>c)d=a;
else if(b>a&&b>c)d=b;
else d=c;
未完待续
文档信息
- 本文作者:I_like_magic
- 本文链接:https://lanruixiang.github.io/wiki/cpp-rumen/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)