C++ 自增自减运算符 C++ 运算符 自增运算符 ++ 会把操作数加 1,自减运算符 — 会把操作数减 1。因此: x = x+1; 等同于 x++; 同样的: x = x-1; 等同于 x--; 无论是自增运算符还是自减运算符,都可以放在操作数的前面(前缀)或后面(后缀)。例如: x = x+1; 可以写成: ++x; // 前缀形式 或者: x++; // 后缀形式 前缀形式与后缀形式之间有一点不同。如果使用前缀形式,则会在表达式计算之前完成自增或自减,如果使用后缀形式,则会在表达式计算之后完成自增或自减。 实例 请看下面的实例,理解二者之间的区别: #include <iostream> using namespace std; main() { int a = 21; int c ; // a 的值在赋值之前不会自增 c = a++; cout << "Line 1 - Value of a++ is :" << c << endl ; // 表达式计算之后,a 的值增加 1 cout << "Line 2 - Value of a is :" << a << endl ; // a 的值在赋值之前自增 c = ++a; cout << "Line 3 - Value of ++a is :" << c << endl ; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: Line 1 - Value...
C++ 指针调用 C++ 函数 向函数传递参数的指针调用方法,把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 按指针传递值,参数指针被传递给函数,就像传递其他值给函数一样。因此相应地,在下面的函数 swap() 中,您需要声明函数参数为指针类型,该函数用于交换参数所指向的两个整数变量的值。 // 函数定义 void swap(int *x, int *y) { int temp; temp = *x; /* 保存地址 x 的值 */ *x = *y; /* 把 y 赋值给 x */ *y = temp; /* 把 x 赋值给 y */ return; } 如需了解 C++ 中指针的更多细节,请访问 C++ 指针 章节。 现在,让我们通过指针传值来调用函数 swap(): #include <iostream> using namespace std; // 函数声明 void swap(int *x, int *y); int main () { // 局部变量声明 int a = 100; int b = 200; cout << "交换前,a 的值:" << a << endl; cout << "交换前,b 的值:" << b << endl; /* 调用函数来交换值 * &a 表示指向 a 的指针,即变量 a 的地址 * &b 表示指向 b 的指针,即变量 b 的地址 */ swap(&a, &b); cout << "交换后,a 的值:" <<...
C++ 嵌套 switch 语句 C++ 判断 您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。即使内部和外部 switch 的 case 常量包含共同的值,也没有矛盾。 C++ 中的 switch 语句允许至少 256 个嵌套层次。 语法 C++ 中 嵌套 switch 语句的语法: switch(ch1) { case 'A': cout << "这个 A 是外部 switch 的一部分"; switch(ch2) { case 'A': cout << "这个 A 是内部 switch 的一部分"; break; case 'B': // 内部 B case 代码 } break; case 'B': // 外部 B case 代码 } 实例 #include <iostream> using namespace std; int main () { // 局部变量声明 int a = 100; int b = 200; switch(a) { case 100: cout << "这是外部 switch 的一部分" << endl; switch(b) { case 200: cout << "这是内部 switch 的一部分" << endl; } } cout << "a 的准确值是 "...
C++ 指针运算符(& 和 *) C++ 运算符 C++ 提供了两种指针运算符,一种是取地址运算符 &,一种是间接寻址运算符 *。 指针是一个包含了另一个变量地址的变量,您可以把一个包含了另一个变量地址的变量说成是”指向”另一个变量。变量可以是任意的数据类型,包括对象、结构或者指针。 取地址运算符 & & 是一元运算符,返回操作数的内存地址。例如,如果 var 是一个整型变量,则 &var 是它的地址。该运算符与其他一元运算符具有相同的优先级,在运算时它是从右向左顺序进行的。 您可以把 & 运算符读作“取地址运算符”,这意味着,&var 读作”var 的地址”。 间接寻址运算符 * 第二个运算符是间接寻址运算符 *,它是 & 运算符的补充。* 是一元运算符,返回操作数所指定地址的变量的值。 请看下面的实例,理解这两种运算符的用法。 #include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // 获取 var 的地址 ptr = &var; // 获取 ptr 的值 val = *ptr; cout << "Value of var :" << var << endl; cout << "Value of ptr :" << ptr << endl; cout << "Value of val :" << val << endl; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: Value of var :3000 Value of ptr :0xbff64494 Value of val :3000 C++ 运算符
C++ 嵌套 if 语句 C++ 判断 在 C++ 中,嵌套 if-else 语句是合法的,这意味着您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 语法 C++ 中 嵌套 if 语句的语法: if( boolean_expression 1) { // 当布尔表达式 1 为真时执行 if(boolean_expression 2) { // 当布尔表达式 2 为真时执行 } } 您可以嵌套 else if…else,方式与嵌套 if 语句相似。 实例 #include <iostream> using namespace std; int main () { // 局部变量声明 int a = 100; int b = 200; // 检查布尔条件 if( a == 100 ) { // 如果条件为真,则检查下面的条件 if( b == 200 ) { // 如果条件为真,则输出下面的语句 cout << "a 的值是 100,且 b 的值是 200" << endl; } } cout << "a 的准确值是 " << a << endl; cout << "b 的准确值是 " << b << endl; return 0; }...