C++

C++ 知识量:19 - 82 - 316

5.1 简单语句><

表达式语句- 5.1.1 -

C++表达式语句是C++程序中最基本的语句形式之一,它由一个表达式和分号组成。表达式可以是算术表达式、布尔表达式、赋值表达式等。

下面是一些示例表达式语句:

1. 算术表达式语句:

int a = 10;    
int b = 20;    
int c = a + b; // 算术表达式语句

2. 布尔表达式语句:

int x = 10;  
int y = 20;  
if (x < y) { // 布尔表达式语句  
    cout << "x is less than y";  
}

3. 赋值表达式语句:

int p = 30;    
p = 40; // 赋值表达式语句

4. 自增自减表达式语句:

int q = 50;    
q++; // 自增表达式语句      
q--; // 自减表达式语句

注意:表达式语句可以带有括号,例如:

(a + b) * c; // 带括号的表达式语句

空语句- 5.1.2 -

在C++中,空语句(empty statement)是一个不执行任何操作的语句,它仅由一个分号组成。空语句在语法上是合法的,但没有任何实际作用。它通常用于提供一个占位符,在程序中需要一个语句但没有任何实际操作时使用。例如:

int x = 10;    
int y = 20;    
; // 空语句

在这个例子中,空语句没有任何影响,它只是为了满足语法要求。

复合语句- 5.1.3 -

C++中的复合语句(compound statement)是一种包含多个语句的语句,通常使用花括号({})将多个语句组合在一起。复合语句可以包含多个变量定义、表达式、控制结构等。

下面是一个简单的复合语句示例:

{  
    int x = 10;  
    int y = 20;  
    cout << "x + y = " << x + y << endl;  
}

在这个例子中,花括号将三个语句组合成一个复合语句。首先定义了两个整型变量x和y,然后计算它们的和并打印输出。

需要注意的是,在C++中,花括号可以用于组合多个语句,但并不是必须的。如果复合语句只包含一个语句,则可以省略花括号。例如:

int x = 10; // 只有一个语句,可以省略花括号

语句作用域- 5.1.4 -

C++语句作用域(scope)是指变量的可见性和生命周期。在C++中,变量的作用域可以是局部(local)、成员(member)、全局(global)或命名空间(namespace)级别的。

1. 局部作用域:局部作用域是指在一个函数或代码块内部定义的变量。这些变量的作用域仅限于它们被定义的地方,在函数或代码块之外是不可见的。当函数或代码块执行完毕后,局部变量会被销毁。
例如:

void myFunction() {  
    int x = 10; // 局部变量  
    cout << x << endl;  
}

在这个例子中,变量x的作用域仅限于myFunction函数内部,在函数外部是不可见的。

2. 成员作用域:成员作用域是指在一个类中定义的变量。这些变量只有在类的成员函数内部可见,并且它们的生命周期与类的生命周期相同。
例如:

class MyClass {  
private:  
    int x; // 成员变量  
public:  
    void setX(int value) { x = value; }  
    int getX() { return x; }  
};

在这个例子中,变量x的作用域仅限于MyClass类的成员函数内部,在类的外部是不可见的。

3. 全局作用域:全局作用域是指在所有函数和类之外定义的变量。这些变量在整个程序中都是可见的,并且它们的生命周期与程序的执行时间相同。
例如:

int globalVar = 10; // 全局变量

在这个例子中,变量globalVar的作用域是全局的,可以在程序的任何地方访问。

4. 命名空间作用域:命名空间作用域是指在一个命名空间内部定义的变量。这些变量的作用域仅限于它们所属的命名空间内部,但可以在其他命名空间中使用前缀来访问。
例如:

namespace MyNamespace {  
    int x = 10; // 命名空间变量  
}

在这个例子中,变量x的作用域仅限于MyNamespace命名空间内部,但可以在其他命名空间中使用前缀"MyNamespace::x"来访问。