07. C++ - 静态类型语言
Python 是动态的,C++ 是静态的
静态类型 vs 动态类型
从表面看,Python 和 C++ 有很多共同之处。例如,你可以看到,if 语句、for 循环以及基本的数学表达都非常相似。
但从深层次看,Python 和 C++ 有本质上的不同。其中一个主要区别在于,C++是 静态类型 的,而 Python 则是 动态类型 的。
看一下这段 Python 代码:
vehicle_doors = 4
vehicle_speed = 3.0
vehicle_acceleration = 1.5
vehicle_on = True
vehicle_gear = 'D'
vehicle_dors = vehicle_doors + 1
Python 自动认定 vehicle_doors 是一个整数,vehicle_speed 是一个浮点数,vehicle_on是一个布尔变量。变量赋值是 动态的 。在 Python 中,你无需指定变量的值的类型。
你有没有注意到,"vehicle_doors" 拼写错了,写成了 "vehicle_dors"?这是一段合法的 Python 代码,不会报错。
在 C++ 中,上面的代码是无效的。在赋值前,你需要申明变量类型。因此,C++ 是一种 静态类型 语言。下面是这段代码的 C++ 版本:
int vehicle_doors;
float vehicle_speed;
float vehicle_acceleration;
char vehicle_gear;
bool vehicle_on;
vehicle_doors = 4;
vehicle_speed = 3.0;
vehicle_acceleration = 1.5;
vehicle_gear = 'D';
vehicle_on = True;
vehicle_doors = vehicle_doors + 1;
如果你输入:
vehicle_dors = vehicle_doors + 1;
,则会报错。因为 vehicle_dors 这个变量没有定义。
在静态类型语言中声明变量
在这次小测验中,你需要使用 C++ 编写整数的变量声明。完整阅读下面的代码,然后填充 TODO 部分:
Start Quiz:
// include all libraries needed
#include <iostream>
/*
* These are C++ comments. There are two ways to write comments in C++.
* Using the slash with an asterisk is one way.
*/
// Here is another way to write comments in C++
/* In general, C++ code is run from a file called main.cpp
* The implementation goes into a function called main().
* The main() function almost always returns a zero, which provides evidence that
* the program ran to its end.
*/
// define main function
int main() {
int integer_one;
integer_one = 5;
// TODO: Define a variable called integer_two and assign a value of 9.
// TODO: Calculate the sum of integer_one and integer_two
// and assign the result to integer_sum
int integer_sum;
// outputs the results to standard out
std::cout << integer_sum;
return 0;
}
变量赋值: Python vs C++
要是测验考的是 Python 而不是 C++ 呢?请记住,Python 是动态类型语言,而 C++ 是静态类型的。在 Python 中,Python 会在赋值时自动判断你想使用哪种类型的变量。但在 C++ 编程时,你需要在赋值前声明变量类型。
C++ 小窍门
在 C++ 小测验中,你可能写了这样的语句:
int integer_two;
integer_two = 9;
你还可以使用下列代码定义一个变量并赋值:
int integer_two = 9;