【实训5-14】作用域
(总分32)


 【实训目的】作用域  

【第 1 步】实训内容介绍
         1. 实训内容介绍
         2. 块作用域(一)
         3. 块作用域(二)
         4. 文件作用域
         5. 函数作用域
         6. 实训结束

【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。

 

 

【第 2 步】块作用域(一)

 1、在项目 cpp5 中创建名为 cpp5code 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
 2、将下述代码复制到 cpp5code 中:

#include <iostream.h>
void main(void) {
         // cout << " 块 a={" << a << "} b={" << b << "}\n"; // 错误:未声明就使用
         int a = 103, b = 104;
         // int a = 2;  // 错误:在同一个块中,不能定义同名变量
         cout << " 块 a={" << a << "} b={" << b << "}\n";
}

运行结果如下:

块 a={103} b={104}
Press any key to continue

【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 3 步】块作用域(二)

 将下述代码复制到 cpp5code 中:

#include <iostream.h>
void main(void) {
         int a = 103, b = 104;
         cout << " 外层块 a={" << a << "} b={" << b << "}\n";
         { // 花括号括起来的就是块,常见的是 if, while, for 等的语句块
                  int a = 2; // 在不同块中,可以有同名变量。作用域不同,两个同名变量没有联系
                  b = 5;
                  cout << " 内层块 a={" << a << "} b={" << b << "}\n";
         }
         cout << " 外层块 a={";
         cout << a << "} b={" << b << "}\n";
}

运行结果如下:

外层块 a={103} b={104}
 内层块 a={2} b={5}
 外层块 a={103} b={5}
Press any key to continue

 在不同块中,则可以声明同名变量,但应该避免这样做,因为降低了可读性。

【Jitor 校验第 3 步】// 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 4 步】文件作用域

 将下述代码复制到 cpp5code 中:

#include <iostream.h>

int a, b;                     // 在函数之外的变量是文件作用域
void swap();              // 交换a、b变量值的函数

void main(void) {
         a = 2;
         b = 3;
         cout << "swap之外 a={" << a << "}, b={" << b << "}\n";
         swap();
         cout << "swap之外 a={" << a << "}, b={" << b << "}\n";
}

void swap(){
         cout << "swap内 a={" << a << "}, b={" << b << "}\n";
         int t = a;
         a = b;
         b = t;
         cout << "swap内 a={" << a << "}, b={" << b << "}\n";
}

运行结果如下:

swap之外 a={2}, b={3}
swap内 a={2}, b={3}
swap内 a={3}, b={2}
swap之外 a={3}, b={2}
Press any key to continue

 声明在函数外的变量,具有文件作用域,因此swap函数可以实现对这两个变量值的交换。

【Jitor 校验第 4 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 5 步】函数作用域

 将下述代码复制到 cpp5code 中:

#include <iostream.h>

// 函域作用域的例子
int add(int, int);

void main(void) {
         int a = 3, b = 4;
         int c = add(a, b);
         cout << " c={" << c << "}\n";
}

int add(int x, int y){
         // int x = 10; //  出错:x 的作用域是整个函数,函数内不能再次定义同名变量
         cout << " add 函数 x={" << x << "}, y={" << y << "}\n";
         return x + y;
}

运行结果如下:

add 函数 x={3}, y={4}
 c={7}
Press any key to continue

 观察代码和运行结果,理解函数作用域,在函数内不允许声明同名变量。

【Jitor 校验第 5 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。

 

 

【第 6 步】实训总结

 本次实训学习了三种作用域。 

【Jitor 校验第 6 步】我已阅读实训总结 // 送分题。直接点击。

 

仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页