C++从0到1的入门级教学(六)——函数
文章目錄
- 6 函數
- 6.1 概述
- 6.2 函數的定義
- 6.3 函數的調用
- 6.4 值傳遞
- 6.5 函數的常見形式
- 6.6 函數的聲明
- 6.7 函數的分文件編寫
6 函數
6.1 概述
作用:將一段經常使用的代碼封裝起來,減少重復代碼。
一個較大的程序,一般分為若干個程序塊,每個模塊實現特定的功能。
樂趣
C++自帶了一個包含函數的大型庫(標準的ANSI庫加上多個C++類),但真正的樂趣在于編寫自己的函數,另外,如果要提升效率,可更深入學習STL和BOOST C++提供的功能。
6.2 函數的定義
函數的定義一般主要有5個步驟:
語法:
返回值類型 函數名 () {函數體語句return 表達式 }例如加法函數:
關于return
對于有返回值的函數,必須使用return語句,以便將值返回給調用函數。值本身可以是常量、變量,也可以是表達式,只是其結果必須為typeName類型或可以被轉換為typeName(例如:在聲明的時候就說返回double,結果最后return的是一個int,那么這個int將會被強轉為double)。然后函數就會把值返回給調用函數。
C++對返回值的類型有一定的限制,不能是數組,但是可以是其他任何類型,比如整數浮點數甚至是結構和對象。
示例:定義一個加法函數,實現兩個數相加
#include <iostream> using namespace std;int add(int x,int y) {int c = x + y;return c; }int main() {int a = 1;int b = 2;int result = add(a, b);cout << "a和b加起來為:" << result << endl;system("pause");return 0; }6.3 函數的調用
功能:使用定義好的函數
語法:函數名 (參數)
示例:
#include <iostream> using namespace std;//函數定義 int add(int num1, int num2)//定義中的num1,num2稱為形式參數,簡稱形參 {int sum = num1 + num2;return sum; }int main() {int a = 10;int b = 10;//調用add函數//a和b稱為實際參數,簡稱實參int sum = add(a, b);cout << "sum = " << sum << endl;int sum2 = add(100, 500);cout << "sum2 = " << sum2 << endl;system("pause");return 0;}6.4 值傳遞
所謂值傳遞,就是函數調用時實參將數值傳入給形參
值傳遞時,如果形參發生改變,并不會影響實參。
示例:
#include <iostream> using namespace std;//值傳遞 //定義函數,實現兩個數字進行交換//如果函數不需要不需要返回值,聲明的時候可以寫一個void void swap(int num1, int num2) {cout << "交換前:" << endl;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;int temp = num1;num1 = num2;num2 = temp;cout << "交換后:" << endl;cout << "num1 = " << num1 << endl;cout << "num2 = " << num2 << endl;//return; 返回值不需要的時候,可以不寫return }int main() {int a = 10;int b = 20;cout << "a = " << a << endl;cout << "b= " << b << endl;//當我們函數的形參發生改變的時候,并不會影響實參swap(a, b);cout << "a = " << a << endl;cout << "b= " << b << endl;system("pause");return 0;}值傳遞的原理:
【總結:值傳遞時,形參是修飾不了實參的。】
6.5 函數的常見形式
常見的函數樣式有4種
示例:
#include <iostream> using namespace std;//函數常見形式 //1、無參無反 void test01() {cout << "this is test01" << endl; }//2、有參無返 void test02(int a) {cout << "this is test02 a = " << a << endl; }//3、無參有反 int test03() {cout << "this is test03" << endl;return 1000; }//4、有參有反 int test04(int a) {cout << "this is test04 a = " << a << endl;return a; }int main() {test01();//有參無返函數調用test02(100);//無參有反函數調用int num1 = test03();cout << "num1 = " << num1 << endl;//有參有反函數調用int num2 = test04(10000);cout << "num2 = " << num2 << endl;system("pause");return 0; }6.6 函數的聲明
作用:告訴編譯器函數名稱以及如何調用函數,函數的實際主體可以單獨定義。
- 函數的聲明可以多次,但是函數的定義只能有一次
【注:在有些書上函數聲明也叫函數原型。】
示例:
#include <iostream> using namespace std;//函數的聲明 //比較函數,實現兩個整型數字進行比較,返回較大的值//提前告訴編譯器函數的存在,可以利用函數的聲明 //函數的聲明 //聲明可以寫多次,但是定義只能寫一次 int max(int a, int b);int main() {int a = 10;int b = 20;cout << max(a, b) << endl;system("pause");return 0; }//定義 int max(int a, int b) {return a > b ? a : b; }6.7 函數的分文件編寫
作用:讓代碼結構更加清晰
函數分文件編寫一般有4個步驟
示例:
#include "swapfunc.h" using namespace std; //函數的定義 void swapfunc(int a, int b) {int temp = a;a = b;b = temp;cout << "a = " << a << endl;cout << "b = " << b << endl; } #pragma once #include <iostream> void swapfunc(int a, int b); #include <iostream> #include "swapfunc.h" using namespace std;int main() {int a = 10;int b = 20;swapfunc(a, b);system("pause");return 0; }總結
以上是生活随笔為你收集整理的C++从0到1的入门级教学(六)——函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net项目开发工具(v2.0)功能完善
- 下一篇: 基于java的开源游戏引擎