
第十六课 函数参数 目 标 01、理解形式参数与实际参数。 02、 理解参数传递的三种方式。 函数的参数 参数是函数与函数之间实现通信的数据“接口”。函数调用的过程就是调用者带着实际参数(如果有)执行函数,将实际参数“传递”给形式参数,执行完函数体后再将计算得到的返回值传递给调用者(如果有)。 在未调用函数前,函数中的形式参数并不分配内存空间。只有在被调用执行时,才被分配临时存储空间。函数调用结束后,形式参数的内存空间将被操作系统立刻收回。 函数的参数 实际参数可以是任何符合形式参数类型的常量、变量、表达式。函数参数传递的过程就是实际参数和形式参数相结合的过程,必须遵守三个一致。 (1) 个数一致。 (2) 顺序一致。 (3) 类型一致。 例1、打印字符三角形 【问题描述】 编写一个函数 print (n,ch),表示打印一行 n 个英文字母 ch,并换行。然后,在函数 main() 中输入 n 和 ch,调用函数 print() 打印一个字符三角形。 【输入格式】 一行一个整数 n 和一个英文字母 ch,之间用一个空格隔开,1≤n≤20。 【输出格式】 n 行,第 i 行有 i 个字母 ch。 【输入样例】 3 a 【输出样例】 a aa aaa #include using namespace std; void print(int i,char ch){ for(int j = 1; j <= i; j++) cout << ch; cout << endl; } int main(){ int n; char ch; cin >> n >> ch; for(int i = 1; i <= n; i++) print(i,ch); return 0; } 函数参数的传递方式 根据不同的应用需求,函数参数的传递方式,或者说函数参数的调用方式分为三种: (1) 传值(调用):参见例2; (2) 传址(调用):参见例3; (3) 引用(调用):参见例4、例5; 例2、阅读程序,写出程序的运行结果,体会函数的传值(调用)。 #include using namespace std; void swap(int x,int y){ int temp; temp = x; x = y; y = temp; cout << x << “ “ << y << endl; } int main(){ int a = 10,b = 50; swap(a,b); cout << a << “ “ << b << endl; return 0; } 例3、阅读程序,写出程序的运行结果,体会函数的传址(调用)。 #include using namespace std; void swap(int *x,int *y){// 形式参数的类型定义为指针 int temp; temp = *x; *x = *y; *y = temp; cout << *x << “ “ << *y << endl; } int main(){ int a = 10,b = 50; swap(&a,&b);// 实际参数必须是地址 cout << a << “ “ << b << endl; return 0 ; } 例4、阅读程序,写出程序的运行结果,体会变量及其引用的操作。 //#include using namespace std; int main(){ int k = 32; int& k_adr = k; cout << “ k= ” << k << “ k_adr= ” << k_adr << endl; k++; cout << “ k= ” << k << “ k_adr= ” << k_adr < using namespace std; void swap(int &a,int &b){ int temp; temp = a; a = b; b = temp; cout << a << “ “ << b << endl; } int main(){ int a = 10,b = 50; swap(a,b); cout << a << “ “ << b << endl; return 0; } 变量的作用域 学习目标 1. 理解变量的作用域。 2. 熟练规范使用局部变量和全局变量。 变量的作用域 变量按其在程序中的作用范围,分为全局变量和局部变量。 全局变量是指定义在任何函数之外的变量,也就是不被任何“{函数体}”所包含,可以被源文件中其他函数所共用,用静态数据区存储,作用域(有效范围)是从定义变量的位置开始到源文 ... ...
~~ 您好,已阅读到文档的结尾了 ~~