当前位置:首页 > 课程体系 > 正文

001 C++基础学习

安装和使用 Dev-C++

1 安装 Dev-C++

2 打开 Dev-C++

安装完成后,在桌面上找到 Dev-C++ 的图标,双击打开它。

3 创建一个新的 C++ 文件

  1. 打开 Dev-C++ 后,点击菜单栏中的 “文件” -> “新建” -> “源代码” 或者快捷键Ctrl + N, 或者点击A4纸的图标。

  2. 这时会弹出一个空白的编辑窗口,我们可以在这里编写 C++ 代码。


安装模版代码的使用和介绍

#include <iostream>
#include <cstdio>
using namespace std;
int main() {
    cout << "Hello, World!" << endl;
    return 0;
}

代码含义

1. 头文件包含部分

cpp
#include <iostream>
#include <cstdio>
  • #include 属于预处理指令,其作用是在编译代码之前把指定的头文件内容嵌入到当前文件里。

  • <iostream> 是 C++ 标准库中的头文件,提供了输入输出流的相关功能,像 cout(标准输出流)和 cin(标准输入流)就定义在这个头文件中。

  • <cstdio> 是 C 标准库中的输入输出头文件在 C++ 中的版本,它提供了类似于 printf 和 scanf 这样的函数,不过在这段代码里并未使用到该头文件的功能。

2. 命名空间声明

cpp
using namespace std;
  • std 是 C++ 标准库所使用的命名空间。命名空间的作用是避免不同库或者代码中出现同名的标识符而产生冲突。

  • using namespace std; 这一语句表明在当前代码中使用 std 命名空间,如此一来,在使用 std 命名空间里的标识符(例如 coutendl)时就无需再加上 std:: 前缀。

3. main 函数

cpp
int main(){
    cout << "Hello, World!" << endl;
    return 0;
}
  • int main():这是 C++ 程序的入口函数,每个 C++ 程序都必须有一个 main 函数,程序从这里开始执行。int 表示该函数的返回值类型为整数。

  • cout << "Hello, World!" << endl;

    • cout 是 std 命名空间中的标准输出流对象,用于向控制台输出数据。

    • << 是插入运算符,它把右侧的数据插入到左侧的输出流中。

    • "Hello, World!" 是要输出的字符串常量。

    • endl 同样是 std 命名空间中的一个操纵符,其作用是输出换行符并刷新输出缓冲区。

  • return 0;main 函数返回一个整数值,返回值 0 通常代表程序正常结束。在大多数操作系统中,程序结束时返回 0 表示没有发生错误。

综上所述,这段代码借助 cout 把字符串 “Hello, World!” 输出到控制台,并且在输出结束后换行,最后程序正常结束。


变量的命名规范

在 C++ 里,变量可看作是存储数据的容器。在程序运行期间,变量所存储的值能够被读取和修改。每个变量都有特定的数据类型,它决定了变量可以存储的数据种类以及占用的内存空间大小。

基本规则

  1. 合法字符:变量名只能由字母(大写或小写)、数字和下划线(_)组成。例如,myVariable_countage1 都是合法的。

  2. 首字符要求:变量名不能以数字开头。例如,123abc 是不合法的,而 abc123 是合法的。

  3. 区分大小写:C++ 是区分大小写的语言,所以 myVariable 和 MyVariable 是两个不同的变量名。

  4. 避免关键字:变量名不能使用 C++ 的关键字(如 intifelsereturn 等),因为这些关键字在语言中有特定的用途。

命名建议

  1. 使用有意义的名称:变量名应该能够清晰地表达其存储的数据含义。例如,用 age 存储年龄,用 height 存储身高,避免使用无意义的名称如 abc 等,除非是在简单的循环计数器等场景中。

  2. 遵循命名风格

    • 驼峰命名法:有小驼峰和大驼峰两种。小驼峰命名法的第一个单词首字母小写,后续单词首字母大写,如 myVariable;大驼峰命名法每个单词的首字母都大写,如 MyVariable

    • 下划线命名法:单词之间用下划线分隔,如 my_variable


赋值运算符

在 C++ 里,赋值运算符用于给变量赋予一个新的值,其基本形式为 =。赋值运算符的左边是一个左值(通常是变量),右边是一个表达式,该表达式的值会被赋给左边的变量。
以下是赋值运算符的一些常见用法:

1. 简单赋值

cpp
int num;num = 10; // 将整数 10 赋值给变量 num

2. 连续赋值

cpp
int a, b, c;a = b = c = 5; // 先将 5 赋给 c,再将 c 的值赋给 b,最后将 b 的值赋给 a

3. 复合赋值

C++ 还提供了复合赋值运算符,如 +=-=*=/=%= 等,它们是赋值运算符和算术运算符的组合。
cpp
int num = 5;num += 3; // 等同于 num = num + 3,执行后 num 的值为 8


第三者变量传值

cpp
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
    // 定义两个整数变量 a 和 b,用于存储用户输入的值
    int a, b;
    // 定义一个临时变量 c,用于交换 a 和 b 的值
    int c;

    // 提示用户输入两个整数
    cout << "请输入两个整数,用空格分隔: ";
    // 从标准输入读取两个整数到变量 a 和 b 中
    cin >> a >> b;

    // 使用临时变量 c 交换 a 和 b 的值
    c = a;
    a = b;
    b = c;

    // 输出交换后的 a 和 b 的值
    cout << "交换后的结果是: " << a << " " << b << endl;

    return 0;
}


算术运算符

加法运算符(+)
加法运算符(+)用于将两个数字相加,例如:

cpp
int a = 1 + 2;  // a 的值为 3

减法运算符(-)
减法运算符(-)用于将一个数字减去另一个数字,例如:
cpp
int a = 2 - 1;  // a 的值为 1

乘法运算符(
乘法运算符(
)用于将两个数字相乘,例如:
cpp
int a = 2 * 3;  // a 的值为 6

除法运算符(/)
除法运算符(/)用于将一个数字除以另一个数字,例如:
cpp
int a = 6 / 2;  // a 的值为 3

需要注意的是,在 C++ 中,两个整数相除得到的结果也是整数,即会向下取整。如果希望得到精确的小数结果,可以将其中一个数字转换为浮点数类型。


取模运算符(%)
取模运算符(%)用于将一个数字除以另一个数字,并返回余数,例如:
cpp
int a = 6 % 4;  // a 的值为 2

plaintext
5 % 3 = 2
4 % 2 = 0
2 % 4 = 2
1 % 3 = 1

结论:小的数取余大的数结果是小的数
取模运算符的操作数必须是整数,不能是浮点数。


%和/的特殊用法

在 C++ 里,对于一个整数而言,
/ 10 操作相当于去掉该数的个位数字,
% 10 操作则是获取这个数的个位数字。
借助这两个操作,我们能够逐位分离出一个整数的每一位数字。下面的代码实现了输入一个四位数,然后输出这个四位数各个数位之和的功能。

cpp
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
    // 定义变量 n 用于存储输入的四位数
    int n;
    // 定义变量 g, s, b, q 分别用于存储个位、十位、百位、千位数字
    int g, s, b, q;

    // 提示用户输入一个四位数
    cout << "请输入一个四位数: ";
    // 从标准输入读取一个四位数到变量 n 中
    cin >> n;

    // 分离出个位数字
    g = n % 10;
    n /= 10;

    // 分离出十位数字
    s = n % 10;
    n /= 10;

    // 分离出百位数字
    b = n % 10;
    n /= 10;

    // 此时 n 即为千位数字
    q = n;

    // 计算并输出各个数位数字之和
    cout << "这个四位数各个数位数字之和是: " << g + s + b + q << endl;

    return 0;
}


作业代码

// 001. C++基础学习 
// A题目 
#include <iostream>
#include <cstdio>
using namespace std;
int a, b; 
int main(){
	cin >> a >> b;
	cout << a + b;
	return 0;
}

// B题目 
#include <iostream>
#include <cstdio>
using namespace std;
int n, g, s, b, t; 
int main(){
	cin >> n;
	g = n % 10;
	s = n / 10 % 10;
	b = n / 100 % 10;
	t = g * 100 + s * 10 + b;
	cout << n + t;
	return 0;
}

// C题目 
#include <iostream>
#include <cstdio>
using namespace std;
int a, b; 
int main(){
	cin >> a >> b;
	cout << a / b << " " << a % b;
	return 0;
}

// D题目
#include <iostream>
#include <cstdio>
using namespace std;
int n;
int main(){
	cin >> n;
	cout << n % 10 + n / 10 % 10;
	return 0;
}


有话要说...