字数 1750,阅读大约需 9 分钟
年也过完了,心也该静下来了,上年立的flag也变成今年的了,再喊一遍口号,今年要更努力,把c++学会并将c++学习笔记系列更新完毕。敬请期待~
C++ 是一种强类型、静态编译的语言,程序执行时需要明确指定每一个元素的类型。我们从 C++ 的基础语法结构开始,通过对比 Python 来帮助你快速理解。
main
函数C++ 程序的执行从 main
函数开始,这是程序的入口点,Python 没有类似的强制入口函数,直接从脚本顶层代码开始执行。
hello.cpp:
#include <iostream> // 引入输入输出流库
using namespace std; // 使用 std 命名空间
// main() 是程序开始执行的地方
int main() {
cout << "Hello World"; // 输出 Hello World
return 0; // 函数执行完成,返回结果0
}
实例解析:
#include <iostream>
:引入输入输出流库,用于 cout
输出。using namespace std;
:使用 std
命名空间,让后续代码可以直接使用标准库的函数和对象。// main()...
:这是单行注释,在代码中解释某部分功能。int main()
:定义一个名为 main
的函数,返回类型为 int
,{}
内为代码块。cout << "Hello World";
:输出 Hello World
字符串到控制台。return 0;
:标识程序正常结束。在 C++ 中,函数有 返回类型、函数名 和 参数列表。每个函数执行的代码放在 {}
内部,执行结束时可以通过 return
返回结果。
函数结构:
int main() {} // 返回类型为 int,函数名为 main
int
:函数的返回类型。main
:函数名。{}
:代码块,包含函数体内部的代码。在 C++ 中,命名空间是用来避免命名冲突的机制。标准库的所有内容都放在 std
命名空间中。为了简化代码,通常会在文件开头使用 using namespace std;
,这样就可以直接使用标准库的函数和对象。
命名空间的使用:
using namespace std; // 引入标准命名空间
// 如果不使用命名空间
std::cout << "Hello World"; // 显式指定使用 std 命名空间
如果没有 using namespace std;
,在代码中每次使用标准库函数时都需要加上 std::
前缀,就像在 Python 中使用 os.path
而不是直接 path
。
优点:
缺点:
注释用于解释代码的作用。在 C++ 中有两种注释形式:
• 单行注释: 使用 //
来注释一行。
// 这是单行注释
• 多行注释: 使用 /* */
来注释多行。
/* 这是
多行注释 */
注释有助于代码的可读性,但不会被编译器执行。
在 Python 中,代码是按行执行的,每行代码通常会以换行符结束。而在 C++ 中,代码是按语句(分号 ;
)来结束的,因此同一行可以写多条语句。
int main() {cout << "Hello World"; return 0;}
你也可以将这些语句分成多行,按需格式化代码,使代码更易读。
int main() {
cout << "Hello World"; // 输出内容
return 0; // 返回值
}
在 C++ 中,标识符(例如变量名、函数名、类名等)遵循一定的命名规则:
a-z
、A-Z
)、数字(0-9
)和下划线(_
)。但是,标识符的第一个字符必须是字母或下划线,不能以数字开头。myVar
、MyVariable
、_myVar
、var_1
1var
、@var
myVar
和 MyVar
是两个不同的标识符。if
、else
、int
等,这些不能作为标识符使用。完整关键字示例代码:
int myVariable = 10; // 正确
int MyVariable = 20; // 正确,但与 myVariable 不同
int 1var = 30; // 错误,不能以数字开头
在 C++ 中,数据类型是非常重要的,它决定了变量存储数据的形式和大小。与 Python 不同,C++ 是静态类型语言,我们必须在使用变量时显式声明其数据类型。常用的数据类型如下:
• 整数类型(int
)
用于存储整数。示例代码:
int x = 100;
cout << x << endl;
• 浮点类型(float
, double
)
用于存储小数。示例代码:
double pi = 3.14159;
cout << pi << endl;
• 字符类型(char
)
用于存储单个字符。示例代码:
char grade = 'A';
cout << grade << endl;
• 布尔类型(bool
)
用于存储布尔值 true
或 false
。示例代码:
bool isStudent = true;
cout << (isStudent ? "Yes" : "No") << endl;
void
)表示无返回值或空指针的类型。
示例代码:
void printMessage() {
cout << "Hello, C++!" << endl;
}
int main() {
printMessage();
return 0;
}
C++ 中的控制结构包括条件判断、循环结构等。它们决定了程序的执行流程。
C++ 中使用 if
、else if
和 else
语句进行条件判断,类似于 Python 中的 if
语句。
示例代码:
int a = 5;
if (a > 10) {
cout << "a is greater than 10" << endl;
} else if (a == 5) {
cout << "a is 5" << endl;
} else {
cout << "a is less than 5" << endl;
}
C++ 提供了多种循环结构:
• for
循环
适用于已知循环次数的情况。示例代码:
for (int i = 0; i < 5; i++) {
cout << i << endl;
}
• while
循环
适用于条件为真时执行的情况。示例代码:
int i = 0;
while (i < 5) {
cout << i << endl;
i++;
}
在 C++ 中,输入输出通常通过 cin
和 cout
来实现。cin
用于接收输入,cout
用于输出数据。
cin
输入cin
用于从控制台读取数据,读取后赋值给指定的变量。
示例代码:
int age;
cout << "Enter your age: ";
cin >> age;
cout << "Your age is: " << age << endl;
{}
来明确范围。cin
和 cout
进行输入输出,且需要关注格式问题,而 Python 通过 input()
和 print()
进行输入输出,语法更加简洁。通过这种对比学习方法,相信我们能够更快速地理解和掌握 C++ 的基本语法和数据结构,并为后续的学习打下坚实基础。