1 //范磊C++ 第3章 2 3 #include "stdafx.h" 4 #include "iostream" 5 6 //3.1 一个简单的函数 7 void show() 8 { 9 std :: cout << "Hello word! " ; 10 } 11 void fun1()///3.1 一个简单的函数 12 { 13 std :: cout << "函数开始 " ; 14 show(); 15 std :: cout << "函数结束 " ; 16 17 } 18 19 //3.2 函数的传参 20 using namespace std; 21 int add(int x, int y) 22 { 23 return x + y; 24 } 25 int fun2() 26 { 27 int a; 28 int b; 29 int c; 30 31 cout << "请输入两个整数 :" ; 32 cin >> a; 33 cin >> b; 34 c = add(a, b); 35 cout << "a + b =" << c << endl; 36 37 return 0; 38 } 39 40 //3.4 函数的声明与定义 41 void A(); //声明函数A. 42 void B(); //声明函数B. 43 int main_fun4(); //声明函数main_fun4. 44 void fun4() 45 { 46 main_fun4(); //在fun4函数里面调用了函数main_fun4. 47 /* int main_fun4() //这样是一个错误的调用函数的方法. 48 { 49 A(); //如果要在一个函数(f1)里面实现另外一个函数(f2)的功能,必须只能调用. 50 B(); //不能直接在函数(f1)里面新声明并且定义一个函数(f2). 51 52 return 0; 53 } */ 54 } 55 void A() //定义函数A的具体内容. 56 { 57 std::cout <<"函数A " ; 58 } 59 void B() //定义函数B的具体内容. 60 { 61 std::cout <<"函数B " ; 62 } 63 int main_fun4() //定义函数main_fun4的具体内容. 64 { 65 A(); //在main_fun4调用了函数A. 66 B(); //在main_fun4调用了函数B. 67 68 return 0; 69 } 70 71 //3.5 局部变量 72 //在函数内部声明的变量为局部变量,只存在本函数当中,函数结束时,局部变量也随之结束. 73 //例如在函数f1中有两个变量a,b.他们只能存货在函数f1中,当离开了f1时,a和b无意义,无法使用. 74 void swap(int, int); 75 int fun5() 76 { 77 int x; 78 int y; 79 80 x = 3; 81 y = 4; 82 83 cout << "在fun5函数中,调用swap函数之前,x的值为:" <<x <<",y的值为:" << y << endl; 84 swap(3, 4); 85 cout << "在fun5函数中,调用swap函数之前,x的值为:" <<x <<",y的值为:" << y << endl; 86 87 return 0; 88 } 89 90 void swap(int x, int y) 91 { 92 cout << "在swap函数中,调用swap函数之前,x的值为:" <<x <<",y的值为:" << y << endl; 93 94 int z; 95 z = x; 96 x = y; 97 y = z; 98 99 cout << "在swap函数中,调用swap函数之前,x的值为:" <<x <<",y的值为:" << y << endl; 100 } 101 102 //3.6 全局变量 103 void func(); 104 int x = 3; //全局变量时,定义就要赋值.否则编译不能通过. 105 int y = 4; 106 //x = 3; //全局变量时,不可以先定义,然后再赋值. 107 //y = 4; 108 /* 109 全局变量虽然 int a = 1 和 int b = 2是可以通过了编译. 110 1.但是如果在整个文件中都没有任何程序使用到全局变量的时候,编译器还是不会为全局变量分配内存空间的. 111 2.如果f1函数使用了全局变量,f1的函数框架不会为了全局变量多生成8个字节的内存空间. 112 */ 113 int fun6() 114 { 115 cout << "fun6函数中: " ; 116 cout << "X = "<< x << ",Y = " << y << endl; 117 func(); 118 119 return 0; 120 } 121 void func() 122 { 123 cout << "func函数中: " ; 124 cout << "X = "<< x << ",Y = " << y << endl; 125 } 126 127 128 int main(int argc, char* argv[]) 129 { 130 fun1(); //3.1 一个简单的函数 131 std :: cout << "----------------------- " ; 132 133 //fun2(); //3.2 函数的传参数 134 std :: cout << "----------------------- " ; 135 136 fun4(); //3.4 函数的声明与定义 137 std :: cout << "----------------------- " ; 138 139 fun5(); //3.5 局部变量 140 std :: cout << "----------------------- " ; 141 142 fun6(); //3.6 全局变量 143 std :: cout << "----------------------- " ; 144 145 return 0; 146 }