目录
一、C++初识
1、第一个C++程序
编写一个c++程序总共分为四个步骤
1、创建项目
2、创建文件
3、编写代码
4、运行程序
1、创建项目
Visual studio使我们常用来编写C++程序的主要工具(这里以vs2022为例)
2、创建文件
右击源文件->添加->添加新建项
3、编写代码
#include <iostream>
using namespace std;
int main() {
cout << "hello world" << endl;
system("pause");
return 0;
}
4、运行项目
2、注释
作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码
两种格式:
1.单行注释://描述信息
通常放在一行代码的上方,或者—条语句的末尾,对该行代码说明
⒉.多行注释:/*描述信息*/
通常放在一段代码的上方,对该段代码做整体说明
提示:编译器在编译代码时,会忽略注释的内容
示例:
3、变量
作用:给一段指定的内存空间起名。方便操作这段内存
语法:数据类型 变量名 = 初始值;
示例:
4、常量
作用:用于记录程序中,不可更改的数据
C++定义常量两种方式
1、#define宏常量: #define 常量名 常量值
通常在文件上方定义,表示一个常量
2、const修饰的变量:const 数据类型 常量名 = 常量值
通常在变量定义前加关键字const,修饰该变量为常量,不可修改
示例:
5、关键字
作用:关键字是c++中预先保留的单词(标识符)
注意:在定义变量或者常量的时候,不要用关键字
C++关键字如下:
6、标识符命名规则
作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则
1、标识符不能是关键字
2、标识符只能由字母、数字、下划线组成
3、第一个字符必须为字母或下划线
4、标识符中字母区分大小写
示例:
建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读
二、数据类型
c++规定再创建一个变量或者常量的时候,必须要指定出相应的数据类型,否则无法给变量分配内存
数据类型存在的意义:给变量分配合适的内存空间
1、整型
作用:整型变量表示的是整数类型的数据类型
C++中能够表示整型的类型有以下几种方式,区别在于所占的内存空间不同:
示例:
2、sizeof关键字
作用:利用sizeof关键字可以统计数据类型所占内存大小
语法:sizeof(数据类型/变量)
示例:
整型结论:short < int <= long < long long
3、实型(浮点型)
作用:用于表示小数
浮点型变量分为两种:
1、单精度 float
2、双精度 double
两者的区别在于表示的有效数字范围不同。
示例:
科学计数法:
4、字符型型
作用:字符型变量用于显示单个字符
语法:char* ch = 'a';
注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
注意事项:
1、C和C++中,字符型变量只占一个字节
2、字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
示例:
ASCLL码表:
ASCII值 | 控制字符 | ASCII值 | 字符 | ASCII值 | 字符 | ASCII值 | 字符 |
0 | NUT | 32 | (space) | 64 | @ | 96 | 、 |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | " | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | , | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DCI | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | TB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | / | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ` |
31 | US | 63 | ? | 95 | _ | 127 | DEL |
5、转义字符
作用:用于表示一些不能先死出来的Ascll字符
现阶段,我们常用的转义字符有:\n \\ \t
转义字符 | 含义 | ASCII码值(十进制) |
\a | 警报 | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
*\* | 代表一个反斜线字符"" | 092 |
' | 代表一个单引号(撇号)字符 | 039 |
" | 代表一个双引号字符 | 034 |
? | 代表一个问号 | 063 |
\0 | 数字0 | 000 |
\ddd | 8进制转义字符,d范围0~7 | 3位8进制 |
\xhh | 16进制转义字符,h范围09,af,A~F | 3位16进制 |
示例:
6、字符串型
作用:用于表示一串字符
两种风格:
1、c风格:char 变量名[] = “字符串值”
2、c++风格:string 变量名 = “字符串值”
示例:
注意:
1、注意:c风格的字符串可以用双引号
1、c++风格的字符串,需要包含 #include<string> 头文件
7、布尔类型bool
作用:布尔数据类型代表真或假的值
bool类型只有两个值:
1、true ----真(本质是1)
2、false ----假(本质是0)
bool类型只占一个字节
非0,表示true,0表示false
示例:
8、数据的输入
作用:用于从键盘获取数据
关键字:cin
语法:cin<<变量
示例:
三、运算符
作用:用于执行代码的运算
常用的几类运算符
运算符类型 | 作用 |
算术运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋给变量 |
比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
1、算术运算符
作用:用作处理四则运算
算术运算符包括以下符号:
运算符 | 术语 | 示例 | 结果 |
+ | 正号 | +3 | 3 |
- | 负号 | -3 | -3 |
+ | 加 | 10 + 5 | 15 |
- | 减 | 10 - 5 | 5 |
* | 乘 | 10 * 5 | 50 |
/ | 除 | 10 / 5 | 2 |
% | 取模(取余) | 10 % 3 | 1 |
++ | 前置递增 | a=2; b=++a; | a=3; b=3; |
++ | 后置递增 | a=2; b=a++; | a=3; b=2; |
-- | 前置递减 | a=2; b=--a; | a=1; b=1; |
-- | 后置递减 | a=2; b=a--; | a=1; b=2; |
示例:
注意事项:
1、两个整数相除,结果还是整数
2、0不可以做除数
3、小数相除,结果可以为小数
4、取模时,模数不能为0
5、小数是不可以做取模运算的
6、前置++,现对变量++,在计算表达式,后置++相反
2、赋值运算符
作用:用于将表达式的值赋给变量
赋值运算符包括以下几个符号
运算符 | 术语 | 示例 | 结果 |
= | 赋值 | a=2; b=3; | a=2; b=3; |
+= | 加等于 | a=0; a+=2; | a=2; |
-= | 减等于 | a=5; a-=3; | a=2; |
*= | 乘等于 | a=2; a*=2; | a=4; |
/= | 除等于 | a=4; a/=2; | a=2; |
%= | 模等于 | a=3; a%2; | a=1; |
示例:
3、比较运算符
作用:用作表达式的比较,返回一个真值或者假值
比较运算符有以下的符号
运算符 | 术语 | 示例 | 结果 |
== | 相等于 | 4 == 3 | 0 |
!= | 不等于 | 4 != 3 | 1 |
< | 小于 | 4 < 3 | 0 |
> | 大于 | 4 > 3 | 1 |
<= | 小于等于 | 4 <= 3 | 0 |
>= | 大于等于 | 4 >= 1 | 1 |
示例:
4、逻辑运算符
作用:用于根据表达式的值返回真值或者假值
逻辑运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
! | 非 | !a | 如果a为假,则!a为真; 如果a为真,则!a为假。 |
&& | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 |
|| | 或 | a || b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
示例:
四、程序流程结构
c/c++支持三种程序运行结构:顺序结构,选择结构,循环结构
1、顺序结构:程序按顺序执行,不发生跳转
2、选择结构:依据条件是否满足,有选择执行相应功能
3、循环结构:依据条件是否满足,循环多次执行某段代码
1、选择结构
(1)、if语句
作用:执行满足条件的语句
if的三种形式:
1、单分支格式
格式:if(条件){执行语句}
2、单分支多行格式
格式:if(条件){满足执行语句}else{不满足执行语句}
3、多分支格式
格式:if(条件1){条件1满足执行语句}else if(条件2){条件2满足执行语句}else{条件都不满足执行语句}
示例:
(2)、三目运算符
作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
解释:
1、如果表达式1为true,执行2,返回2的结果
2、如果表达式1为false,执行3,返回3的结果
示例:
(3)、Switch语句
作用:执行多条件分支语句
语法:
switch (表达式){
case 结果1:执行语句;break;
case 结果2:执行语句;break;
......
case 结果n:执行语句;break;
default: 执行语句;break;
}
示例:
2、循环结构
(1)、while语句
作用:满足循环条件,执行循环语句
语法:while(循环条件){循环语句}
解释:只要循环条件结果为真,就执行循环语句
示例:
(2)、do_while语句
作用:满足循环条件,执行循环语句
语法:do{循环语句} while(循环条件)
注意:与while的区别是,do_while会先执行一次循环语句,再判断循环条件
示例:
案例:用do_while语句实现求水仙花数
int main() {
int i = 0;
int q = 100;
do {
int a = (q / 100) % 10;
int b = (q / 10) % 10;
int c = q % 10;
if ((a*a*a + b*b*b + c*c*c) == q) {
i++;
cout << "水仙数" << i << ":" << q << endl;
}
q++;
} while (q<1000);
}
(3)、for循环语句
作用:满足循环条件,执行循环语句
语法:for(起始表达式;条件表达式;末尾循环体){循环语句}
示例:
(4)、嵌套循环
作用:在循环体中,再嵌套一层循环,解决一些实际问题
示例:
3、跳转语句
(1)、break语句
作用:用于跳出选择结构或者循环结构
break使用的时机
1、出现在switch条件语句中,作用是终止case并跳出switch
2、出现在循环语句中,作用是跳出当前的循环语句
3、出现在嵌套循环中,跳出最近的内层循环语句
示例:
(2)、continue语句
作用:在循环语句中,跳过本次循环余下尚未执行的语句,继续执行下一次循环
示例:
(3)、goto语句
作用:可以无条件跳转语句
语法:goto 标记;
解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置。
示例:
goto过于强大,了解即可,不推荐使用!
喜欢就点赞收藏吧~~~