system函數_自學C++基礎教程【函數】

de719495d575f3e0d3187c7560d91588.png

函數的概念

一個函數由:函數的返回值類型、函數名、參數表、函數體 這4個部分組成。

3927a275044b912cac9c98c0d4ad5ee2.png
int  Add(  int   _a , int   _b  ) 
{return _a + _b;
}

該函數 Add 完成對兩個整型數據的求和功能。

函數的調用方式: 函數名(參數表);

在代碼區鍵入如下代碼,觀察程序運行結果

#include<iostream>using namespace std;int  Add(  int   _a , int   _b  ){return _a + _b;}void  main()
{int iResult = Add(3, 5);	  // 該行既為函數的調用cout<<iResult<<endl;system(“pause”);}

函數的定義,聲明、實現

函數的定義:該函數出現的時候就具有返回值、函數名、參數表、函數體

在代碼區鍵入如下代碼,觀察運行結果:

#include <iostream>using namespace std;void GetSum(  int _a , int _b )
{cout<<"兩數之和為:"<<_a+_b<<endl;}void main()
{GetSum(3,5);system("pause");}

e6fb3c038cb7e0f863e332ad7bb5e279.png

如果代碼變為如下樣子,是否有問題?

#include <iostream>using namespace std;void GetSum(int, int);void main()
{GetSum(3,5);system("pause");}void GetSum(  int _a , int _b )
{cout<<"兩數之和為:"<<_a+_b<<endl;}

aa278dbd532431bc4ebbd9c890ef403e.png

如果代碼變為如下樣子,是否有問題?

#include <iostream>
using namespace std;void main()
{void GetSum(  int _a , int _b ){cout<<"兩數之和為:"<<_a+_b<<endl;}GetSum(3,5);system("pause");}

bf855c4b834b1ce6f6b973ce68579184.png

函數的聲明:該函數出現的時候只具有返回值、函數名、參數表,但是缺少函數體,而以分號作為結尾

函數的實現:在聲明過一個函數之后,我們為其添加函數體的過程

在代碼區鍵入如下代碼,觀察運行結果

#include <iostream>
using namespace std;void GetSum(  int, int);     // 聲明一個函數void main()
{GetSum(3,5);	     //調用一個已經聲明過的函數system("pause");}

61d9cd58f27b8009de4d3bb2f6843ab4.png

代碼修改如下,觀察運行結果

#include <iostream>
using namespace std;void GetSum(  int  , int  );     // 函數的聲明,在聲明一個函數的時候我們可以不給出函數的形參名void main()
{GetSum(3,5);	     //調用一個已經聲明過的函數system("pause");}void GetSum(  int _a , int _b )     //函數的實現
{cout<<"兩數之和為:"<<_a+_b<<endl;}

24e8991b8ba9d2949b9749b347a4291c.png

通過以上講解可以看出:

  1. 一個函數既可以定義,也可以先聲明,后實現
  2. 兩種形式的函數在調用上無區別
  3. 函數的定義往往出現在程序結構相對簡單的代碼中
  4. 函數的聲明、實現經常出現在代碼需要拆分為 .h 與 .cpp兩個文件中的情況(例如我們后面將要講解的類,類的函數的聲明出現在它的.h文件中,而該函數的實現往往出現在.cpp文件中)

一個函數:由函數返回值、函數名、參數表、函數體這四個部分組成

  1. 函數返回值:可以是任何基本數據類型。
  2. 函數名是由用戶定義的標識符,需遵循C++標識符命名規則。
  3. 函數的參數表,由()中間的參數組成。參數是用于向函數傳遞數據的變量。
  4. 函數體為當前函數所能完成功能的復合語句。

注意:main函數是一個特殊的函數,它是C++的入口函數。


函數返回值可以是任何基本數據類型。

在代碼區鍵入以下代碼,編譯并運行后查看結果

#include <iostream>
using namespace std;int   getSum(int _a , int _b)
{return _a+_b;}void main(){int iResult = getSum(3,5);cout<<"3+5 = "<<iResult<<endl;system("pause");
}

a31a9fe3613c02b7b56a563c305721b1.png

函數的返回值

將代碼改寫為如下,編譯并運行后查看結果

#include <iostream>using namespace std;int   getSum(int _a , int _b)
{return _a+_b;}void main(){// int iResult = getSum(3,5);cout<<"3+5 = "<<getSum(3,5)<<endl;system("pause");}

25c4b4631e6a155941fccf3d1590e836.png

在函數的返回值類型不是“void”的情況下,函數體內部必須至少存在一個“return”語句,用于返回必要的數據。

#include <iostream>
using namespace std;bool playerIsDead(int   _hp)
{if( _hp > 0 )return false;return true;
}
void main(){int iHP = 0;cout<<"請輸入玩家HP:"<<endl;cin>>iHP;if( playerIsDead(iHP) )cout<<"玩家死亡"<<endl;elsecout<<"玩家存活"<<endl;system("pause");
}

6c43438b1ed1f0a96601d8e2717eda50.png

52f52a859e572463781336f375bd0868.png

注意:在函數內部需要分支返回的情況下,必須確保所有分支路徑都具有返回值。否則程序將會提示警告:“不是所有路徑都有返回值”

如果一個函數不需要返回任何數據,使用void作為函數的返回值

如果一個函數的返回值為void時,return語句可以省略。

在代碼區鍵入以下代碼,編譯運行查看結果

#include <iostream>
using namespace std;void printArray( int _iArray[] , int _length ){for(int i = 0 ; i < _length ; ++i)cout<<_iArray[i]<<endl;
}
void main(){int iArray[10] = {1,2,3,4,5,6,7,8,9,10};printArray(iArray,10);system("pause");}

a238f64fd9305408a4784995700877e4.png

函數名

函數名的命名要遵循C++標識符的命名規則。

可以采取駝峰式命名規則:

如:

GetSum

PlayerIsDead

首個單詞首字母小寫,其他單詞首字母大寫


函數的參數表

函數的參數表由() 中間添加向該函數傳遞的參數組成。

參數是用于向函數傳遞數據的變量。

函數參數的()中可以沒有任何參數,但是()不能省略

#include <iostream>
using namespace std;void main()
{cout<<"parameter"<<endl;system("pause");
}

694a4e5714213ca578fe84eb08d8543b.png

函數的參數分為兩種:形式參數(形參)、實際參數(實參)

形參出現在函數聲明或定義中,在整個函數體內都可以使用,離開該函數則不能使用。

實參出現在調用語句中,進入被調函數后,實參不能使用。

在代碼區鍵入如下代碼,編譯并運行查看結果:

#include <iostream>
using namespace std;int getMax( int _a , int _b )		 {return _a > _b ? _a: _b;
}void main()
{int iValue1 = 10 , iValue2 = 5;cout<<"較大的為:"<<getMax(iValue1,iValue2)<<endl;system("pause");}

68159fe12f9255db1c2ac0a680ff0e5f.png

函數的形參和實參具有以下特點:

  1. 形參變量只有在被調用時才分配內存單元,在調用結束時釋放所分配的內存單元。
  2. 實參可以是常量、變量、表達式等。
  3. 實參和形參的數量和順序應嚴格一致。

函數的缺省參數(默認參數、可選參數):

在函數的參數表中被賦以初始值的參數

函數可以在參數表中設置一個或多個參數的缺省值。

void Test( int  _a ,  int  _b = 4);

Test(); //正確

Test(10); //正確

Test(100,200); //正確

Test( , 200); //錯誤

函數調用時,實參表和形參表中的參數是按位置對應的。

缺省參數只能從后向前替代缺少的實參值。


如果我們將沒有賦初始值的參數稱之為:必選參數,那么當我們在定義一個函數的時候:

該函數的參數中必須同時既有必選參數,又有可選參數,它的定義形式一定為:

返回值 函數名(必選參數1,.,.,必選參數n,可選參數1,.,.,可選參數n)

void Test( ); //正確

void Test( int _a ); //正確

void Test( int _a , int _b = 0 ); //正確

void Test( int _a = 0 , int _b = 0 ); //正確

void Test( int _a = 0 , int _b ); //錯誤


函數體

函數體為當前函數所能完成功能的復合語句。

例如:該函數返回兩個參數中較大的一個

int  getMax( int _a , int _b )	{if(_a > _b)return _a;elsereturn _b;}

今天主要講解了函數的基本概念、函數的聲明、實現、定義,函數的基本組成部分等函數相關的基本概念。

這些基本概念是我進行后續學習的基礎。

學習資料領取:

https://pan.baidu.com/s/1VX_zb_eqWH_coos1ZB9QQw

提取碼:w8st

學習從來都不是一個人的事,如果你感覺小編的這篇文章對你有幫助的話,可以關注小編首頁和小編來一起學習C/C++語言,小編會持續更新后續的內容哦!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537449.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537449.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537449.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

寧波政務云資源的介紹與申請

介紹 如圖所示&#xff1a; 寧波政務云分公共服務區與資源共享區。 公共服務區 公共服務區&#xff0c;一般部署允許互聯網訪問的系統&#xff0c;數據不敏感&#xff0c;不重要的&#xff0c;可對外開發的系統。 該區允許互聯網訪問&#xff0c;不允許訪問資源共享區&…

redis查數據

1 連接服務 12345[rootredis1-20 ~]# telnet 127.0.0.1 6380Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is ^].#用telnet也能登錄&#xff0c;但是無法查看key的value12[rootredis1-20 src]# ./redis-cli -p 6380#redis可能有好幾個服務&#xff0c;要指定端…

python幫助文檔在哪_python文檔在哪里

對于Python中一些不清楚的模塊&#xff0c;可以通過文檔學習如何使用&#xff0c;但是python文檔在哪里呢&#xff1f;這個問題我們可以使用Python命令進行查看。方法一 在python命令行輸入以下內容help(time) # 很詳細的模塊文檔 help(time.localtime()) # 很詳細的函數文檔 h…

政務云公共服務區與資源共享區數據交換的方式

上文《寧波政務云資源的介紹與申請》介紹過&#xff0c;公共服務區與資源共享區是不能互訪的&#xff0c;只能是資源共享區單向訪問公共服務區。 我有一項目&#xff0c;要能互聯網訪問&#xff0c;又要訪問“寧波大數據共享平臺”的接口&#xff0c;“寧波大數據共享平臺”在…

Java程序員的IntelliJ IDEA使用教程

前言 博主是Java程序員&#xff0c;以前一直都用myeclipse來開發的&#xff0c;說實話感覺myeclipse毫無美感可言&#xff0c;后來經過同事介紹&#xff0c;認識了IDEA&#xff0c;一眼就相中了IDEA黑色的主題風格&#xff0c;自此就拋棄了舊愛myeclipse。當時還不懂IDEA功能上…

python中random函數用法_random函數的用法

展開全部 用法&#xff1a; 1、隨2113機生成&#xff08;0,1&#xff09;之間的浮點數 random.random() 2、隨機生成100-200的整數5261 random.randint(100,200) 3、隨機產生范圍為410210間隔為2的數 random.randrange(0,11,2) 注&#xff1a;這里輸出&#xff08;0,2,4,6,8,10…

提防易怒的危機

我工作多年&#xff0c;多年來認識一些官場、商場的人。 我與他們相處時&#xff0c;深深體會到太忙、太累的主管&#xff0c;常呈現的狀態是“易怒”。 這些人精神繃得太緊&#xff0c;體力透支&#xff0c;睡眠不足&#xff0c;開會太久&#xff0c;長期都在趕進度。 易怒…

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) 思路: A Exam 思路:水題 代碼: #include<bits/stdc.h> using namespace std; int main(){int k;scanf("%d",&k);char s1[1010],s2[1010];scanf("%s%s",s1,s2);int same0;int ns…

python random()*10的值不可能是_Python

Python 生成隨機數、隨機字符串 #!/usr/bin/python # -*- coding: UTF-8 -*- import random import string # 隨機整數&#xff1a; print random.randint(1,50) # 隨機選取0到100間的偶數&#xff1a; print random.randrange(0, 101, 2) # 隨機浮點數&#xff1a; print rand…

Prince2與PMP的區別

p2有7個原則&#xff0c;7個主題&#xff0c;7個流程&#xff0c;即37二十一。 P2有26個管理產品模板。 2009版本是經典版本&#xff0c;2017版本與2009版本內容基本沒變&#xff0c;梳理了目錄&#xff0c;使內容更加有可讀性。 P2是非常好的項目管理方法論&#xff0c;任何…

html實體編碼_深入研究瀏覽器解析和XSS有效負載編碼

翻譯文章&#xff0c; 原文&#xff1a;Deep dive into browser parsing and XSS payload encoding[1]這篇博客文章將深入探討HTML&#xff0c;URL和JavaScript的規范和解析器&#xff0c;以及它們之間的交互如何在跨站點腳本轉義中有所作為。對于您而言&#xff0c;這可能很難…

2021-02-03-延長一天時間的有效方法

方法1&#xff1a;給對的事情花時間 分清事情輕重緩急&#xff0c;做了對的事情會讓人感到開心。有個原則&#xff0c;就是事后回想這件事&#xff0c;會讓自己感到開心。 比如玩了一晚上游戲和學習&#xff0c;可能更多人的開心是后者。 比如健身運動與長時間學習&#xff…

[洛谷P1341]無序字母對

題目大意&#xff1a;給一張無向圖&#xff0c;找一條字典序最小的歐拉路徑 題解&#xff1a;若圖不連通或有兩個以上的奇數點&#xff0c;則沒有歐拉路徑&#xff0c;可以$dfs$&#xff0c;在回溯時把這個節點加入答案 卡點&#xff1a;沒有在回溯時加入答案&#xff0c;導致出…

產品部門四大角色——PM/PD/UE/UI

按照產品從規劃到最終成型的任務流方向&#xff0c;從抽象到具體、商業到技術的過程&#xff0c;涉及產品經理、產品設計師、用戶體驗師、視覺設計師四個角色。 PM&#xff1a;產品經理&#xff0c;俗稱老大。一個產品&#xff0c;首先由PM來分析細分市場、目標客戶的訴求&…

拉取遠程分支_git clone切換分支步驟,代理設置,作者信息設置

1.克隆遠程倉庫git clone git地址2.查看所有分支git branch –a3.切換分支git checkout branchName4.查看當前所在分支git branch5.拉取代碼git pull6.提交代碼git add file/folder git commit -m comment git push可能遇到的問題&#xff1a;A.error: fatal: unable to acce…

[學習筆記]半平面交

一個直線把平面分成兩部分&#xff0c;就是兩個半平面 處理這兩個平面的交的信息&#xff0c;就是半平面交 推薦&#xff1a; 計算幾何之半平面交算法模板及應用 bzoj 2618 半平面交模板學習筆記 【總結】半平面交 可以用于求任意多邊形交&#xff0c;任意多邊形內核。 &#x…

Project計算項目進度

1.設立根節點 2.資源列表 3.資源成本 4.基準 在任務分配狀況 視圖里&#xff0c;添加“基線工時”“實際工時”“BCWS(計劃&#xff09;”“ACWP(實際&#xff09;”“BCWP&#xff08;掙值&#xff09;”&#xff0c;“SV(>0 提前&#xff0c;<0 延后&#xff09;”、…

jquery動態綁定事件的方法_Jquery綁定事件及動畫效果

綁定事件bind(type, data, fuc)one(type, data, fuc) //只執行一次常見事件類型名稱含義blur失去焦點focus獲得焦點load加載resize重置大小scroll滾動unload卸載click點擊dblclick雙擊mousedown鼠標按下mouseup鼠標彈起mousemove鼠標移動mouseover鼠標懸停mouseout鼠標移走mous…

需求調研前的準備工作

1.需求調研前需要做哪些準備&#xff1f; 1.從各種渠道了解客戶所在行業的行業信息&#xff1b; 2.向和對方有過業務接觸的同事了解對方的信息如現哪些系統和業務流程、對方的管理組織結構是怎樣的&#xff1b; 3.是否可以搜集到對方的一些文字情信息如業務單據、管理規范等。 …

實驗 5 編寫、調試具有多個段的

實驗任務 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;4&#xff09; 若將最后一條指令”end start“改為”end“&#xff0c;&#xff08;3&#xff09;中的程序仍然可以正常執行。 原因&#xff1a;如果不指明程序的入口&am…