1.x 第一章 概要与测验

章节回顾

语句statement是一种指令,能促使程序执行特定操作。语句通常以分号结束。

函数function是由按顺序执行的语句组成的集合。每个C++程序都必须包含一个名为main的特殊函数。运行程序时,执行从main函数顶部开始。

在编程中,函数(或对象、类型、模板等)的名称称为其标识符identifier

规范C++语言元素构造规则的体系称为语法syntax。违反语言语法规则时将引发语法错误syntax error

注释Comments允许程序员在代码中添加备注。C++支持两种注释形式:行注释以//开头并延续至行尾;块注释以/开头并延续至对应的/符号。请勿嵌套块注释。

可通过注释临时禁用代码行或代码段,此操作称为注释掉代码。

数据Data是指计算机可移动、处理或存储的任何信息。单个数据称为value。常见值包括字母(如a)、数字(如5)和文本(如Hello)。

变量是用于存储值的命名内存单元。创建变量需使用定义语句definition statement。程序运行时,每个定义的变量都会被实例化instantiated,即分配内存地址。

数据类型data type告知编译器如何将数据片段解析为有意义的值。整数integer是指可不带小数部分书写的数字,例如4、27、0、-2或-12。

复制赋值Copy assignment(通过赋值运算符)可用于为已创建的变量赋值。

为对象指定初始值的过程称为初始化initialization,用于初始化对象的语法称为初始化器initializer

简而言之,C++支持6种基本初始化类型:

Initialization Type Example Note
Default-initialization int x; In most cases, leaves variable with indeterminate value
Copy-initialization int x = 5;
Direct-initialization int x ( 5 );
Direct-list-initialization int x { 5 }; Narrowing conversions disallowed
Copy-list-initialization int x = { 5 }; Narrowing conversions disallowed
Value-initialization int x {}; Usually performs zero-initialization

直接初始化Direct-initialization有时称为括号初始化parenthesis-initialization,而列表初始化list-initialization(包括值初始化value-initialization)有时称为统一初始化uniform -initialization花括号初始化brace-initialization。应优先使用花括号初始化brace-initialization而非其他初始化形式,并优先使用初始化而非赋值。

虽然可在单条语句中定义多个变量,但建议将每个变量单独定义并初始化于独立语句中。

std::cout 和 operator<< 可将表达式结果输出至控制台。

std::endl 输出换行符,强制控制台光标移至下一行,并清空控制台待输出内容。'\n' 同样输出换行符,但由系统决定何时刷新输出。请注意不要使用 ‘/n’(正斜杠)。

std::cin 和 operator>> 允许我们从键盘获取值。

未赋值的变量称为未初始化变量uninitialized variable。尝试获取未初始化变量的值将导致未定义行为undefined behavior,其表现形式多种多样。

C++保留了一组称为关键字keywords的名称。这些名称在语言中具有特殊含义,不可用作变量名。

字面量常量literal constant是直接嵌入源代码的固定值,例如5和“Hello world!”。

运算operation是一种涉及零个或多个输入值(称为操作数operands)的过程。具体执行操作由对应运算符operator决定,运算结果产生输出值。

一元Unary运算符取一个操作数。二元Binary运算符取两个操作数(常称左操作数和右操作数)。三元Ternary运算符取三个操作数。零元Nullary运算符不取操作数。

表达式expression是由字面量、变量、运算符和函数调用组成的序列,经过求值后产生单一输出值。该输出值的计算过程称为求值evaluation。最终生成的值即为表达式的结果result

表达式语句是指在表达式末尾添加分号后转化为语句的表达式。

编写程序expression statement时,应分段添加代码或函数,逐段编译并修复错误,确保功能正常运行。切勿等到程序全部写完才进行首次编译!

专注于让代码运行起来。当确认保留某段代码后,再投入精力移除(或注释掉)临时/调试代码,添加注释,处理错误情况,规范代码格式,确保遵循最佳实践,消除冗余逻辑等。

初稿程序往往杂乱且不完美。绝大多数代码都需要经过清理和精炼才能变得出色!


测验时间

问题 #1

初始化与赋值有何区别?变量最多可被初始化或赋值多少次?

显示解答

初始化是在变量创建时为其赋予初始值。赋值则是在变量已定义后为其赋予新值。

由于变量仅创建一次,因此只能初始化一次。变量可以被赋值任意多次。

问题 #2

何时会发生未定义行为?未定义行为会导致什么后果?

显示解答

当程序员执行C++语言未明确规定的行为时,就会发生未定义行为。其后果可能千差万别,从程序崩溃、输出错误结果到照常运行皆有可能。

问题 #3

编写程序:用户依次输入两个数字,程序需输出两数相加与相减的结果。

程序输出应与以下示例一致(假设输入为 6 和 4):

Enter an integer: 6
Enter another integer: 4
6 + 4 is 10.
6 - 4 is 2.

提示:要打印一个句号和换行符,请使用“.\n”,而不是'.\n'。

image

显示解决方案

#include <iostream>

int main()
{
	std::cout << "Enter an integer: ";
	int x{};
	std::cin >> x;

	std::cout << "Enter another integer: ";
	int y{};
	std::cin >> y;

	std::cout << x << " + " << y << " is " << x + y << ".\n";
	std::cout << x << " - " << y << " is " << x - y << ".\n";

	return 0;
}
posted @ 2026-02-08 08:38  游翔  阅读(1)  评论(0)    收藏  举报