C++ 函數的使用

C++中的函數是實現代碼復用模塊化的基本單元。下面從定義、調用、參數傳遞、常見樣式、聲明和分文件編寫等方面進行介紹。

1. 函數定義

函數定義包括返回類型、函數名、參數列表和函數體:


返回類型 函數名(參數列表) {// 函數體return 返回值; // 如果返回類型不是void
}

示例:

int add(int a, int b) {return a + b;
}

2. 函數調用

直接使用函數名和參數即可調用:

int result = add(3, 5); // 調用add函數,result為8

3. 值傳遞

C++函數參數默認采用值傳遞,即將實參的值復制一份傳遞給形參,函數內對形參的修改不會影響實參。
示例:

void foo(int x) {x = 100;
}
int main() {int a = 10;foo(a);std::cout << a << std::endl; // 輸出10,a未被修改
}

4. 常見的函數樣式

? 無參無返回值:

  void printHello() {std::cout << "Hello" << std::endl;}

? 有參無返回值

  void printNum(int n) {std::cout << n << std::endl;}

? 有參有返回值:

  double square(double x) {return x * x;}

? 默認參數:

  int sum(int a, int b = 5) {return a + b;}

5. 函數聲明

在函數定義前或分文件編寫時,需要先聲明函數原型:

int add(int a, int b); // 聲明

6. 分文件編寫

通常將函數聲明放在頭文件(.h),定義放在源文件(.cpp),調用時包含頭文件。
示例:
? add.h

  #pragma onceint add(int a, int b);

? add.cpp

  #include "add.h"int add(int a, int b) {return a + b;}

? main.cpp

  #include <iostream>#include "add.h"int main() {std::cout << add(2, 3) << std::endl;return 0;}  

總結

? 函數定義包括返回類型、參數列表和函數體
? 調用時傳遞參數,默認值傳遞
? 常見樣式有無參、無返回值、有默認參數等。
? 分文件編寫時需聲明函數原型,便于模塊化和代碼管理。

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

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

相關文章

一文講清輻射傳輸模型

一、為什么需要進行輻射傳輸反演&#xff1f; 遙感影像中&#xff0c;我們看到的是從地表和大氣混合后到達傳感器的總輻射信號。這個信號既包含了地物反射&#xff0c;也包含了大氣分子和氣溶膠的散射吸收、以及地表自身或大氣的熱發射。若要從中定量獲得植被生理參數、水體理…

視頻編碼怎么選?H.264、H.265、VP9、AV1全解析

你有沒有遇到過這樣的情況&#xff1a;下載了一個高清電影&#xff0c;卻發現播放器打不開&#xff1b;或者上傳視頻到網站時提示“格式不支持”&#xff1f;其實&#xff0c;這背后和視頻編碼格式密切相關。 那么問題來了&#xff1a;視頻編碼格式哪個好&#xff1f; 今天簡鹿…

單例模式:全局唯一實例的設計藝術

引言&#xff1a;為什么需要單例模式 在軟件開發中&#xff0c;某些對象只需要一個全局實例&#xff1a; 數據庫連接池配置管理器日志記錄器線程池緩存系統 使用new關鍵字多次創建這些對象會導致&#xff1a; #mermaid-svg-TyfdXbNvcmqwnA6C {font-family:"trebuchet m…

性能優化 - 案例篇:11種優化接口性能的通用方案

文章目錄 Pre1. 加索引&#xff1a;最低成本&#xff0c;最大收益常見問題&#xff1a;工具命令&#xff1a;建議&#xff1a; 2. SQL 優化&#xff1a;比加索引再進階一步常見 5 類問題&#xff1a;實用建議&#xff1a; 3. 遠程調用&#xff1a;從串行改并行&#xff0c;性能…

Kafka - 并發消費拉取數據過少故障分析

文章目錄 背景與問題描述原理與原因分析參數優化思路示例配置驗證與監控實踐注意事項與風險總結 背景與問題描述 場景描述 使用 Spring Boot Spring Kafka&#xff0c;注解 KafkaListener(topics..., id..., ...)&#xff0c;批量監聽&#xff08;方法簽名為 public void doHa…

開源 Arkts 鴻蒙應用 開發(二)封裝庫.har制作和應用

文章的目的為了記錄使用Arkts 進行Harmony app 開發學習的經歷。本職為嵌入式軟件開發&#xff0c;公司安排開發app&#xff0c;臨時學習&#xff0c;完成app的開發。開發流程和要點有些記憶模糊&#xff0c;趕緊記錄&#xff0c;防止忘記。 相關鏈接&#xff1a; 開源 Arkts …

Qt基礎相關

模態對話框和非模態對話框 在一個頁面進行交互時彈出的一個新頁面&#xff0c;新頁面不堵塞舊頁面的交互&#xff0c;這就是非模態對話框。 模態對話框 模態對話框就是當該對話框彈出后會阻塞其他窗口的響應事件&#xff0c;必須先關閉該對話框&#xff0c;其他窗口才會繼續…

《匯編語言:基于X86處理器》第2章 x86處理器架構

本章重點是與 x86 匯編語言相關的底層硬件。有說法認為&#xff0c;匯編語言是直接與機器交流的理想軟件工具。如果是真的&#xff0c;那么匯編程序員就必須非常熟悉處理器的內部結構與功能。本章將討論指令執行時處理器內部發生的一些基本操作&#xff0c;以及操作系統如何加載…

最小生成樹算法的解題思路與 C++ 算法應用

一、最小生成樹算法針對問題類型及概述 先來簡要陳述一下樹的概念&#xff1a;一個由 N N N 個點和 N ? 1 N-1 N?1 條邊組成的無向連通圖。由此&#xff0c;我們可以得知生成樹算法的概念&#xff1a;在一個 N N N 個點的圖中找出一個由 N ? 1 N-1 N?1 條邊組成的樹。…

feign.FeignException$NotFound: [404 ] during [POST] to [http://ti/ti/v1/i/se

feign.FeignException$NotFound: [404 ] during [POST] to [http://ti/ti/v1/i/send 原因&#xff1a;多個地方注冊 FeignClient(name “ti”, path “/ti/v1/i/send/repeat”) 解決&#xff1a;刪除一個即可

Mac m1 通過docker鏡像安裝kafka

kafka依賴zookeeper&#xff0c;因此需要使用docker同時安裝zookeeper和kafka。 macOS的docker在容器和宿主之間無法通過ip直接通信&#xff0c;因此在安裝的時候需要特殊注意與ip相關的設置。當容器需要訪問宿主ip時&#xff0c;需要使用docker.for.mac.host.internal或者host…

01初始uni-app+tabBar+首頁

初始uni-apptabBar首頁 1. uni-app1.1 新建uni-app項目1.2 目錄結構1.3 把項目配置運行到微信開發者工具 2. tabBar3.1 首頁3.1 配置網絡請求3.2 輪播圖區域3.3 分類導航區域3.4 樓層區域 1. uni-app ? uni-app 是使用 Vue.js 開發前端應用的框架。開發者編寫一套代碼&#x…

微信小程序,微信授權手機號碼

uniapp中index.vue: <template><view class"content"><button open-type"getPhoneNumber" getphonenumber"getPhoneNumber"type"primary">授權手機號登錄 </button></view></template><scrip…

數據結構 學習 圖 2025年6月14日 12點57分

搜索算法 深度優先搜索 一種用于遍歷或搜索樹或圖的算法。它沿著樹的深度遍歷樹的節點&#xff0c;盡可能深的搜索樹的分支。 DFS核心思想 深度優先&#xff1a;盡可能深地搜索樹的分支 回溯思想&#xff1a;當節點v的所在邊都已被探尋過&#xff0c;搜索將回溯到發現節點v的…

H3C路由器使用PBR 實現兩條互聯網專線互為備份

實驗拓撲 圖 1-1 注&#xff1a;如無特別說明&#xff0c;描述中的 R1 或 SW1 對應拓撲中設備名稱末尾數字為 1 的設備&#xff0c;R2 或 SW2 對應拓撲中設備名稱末尾數字為 2 的設備&#xff0c;以此類推&#xff1b;另外&#xff0c;同一網段中&#xff0c;IP 地址的主機位為…

深化信創生態布局!聚銘網絡與海量數據完成產品兼容性互認證

近日&#xff0c;聚銘網絡成功與海量數據完成了一系列產品的兼容性互認證&#xff0c;并獲得了由海量數據頒發的產品兼容互認證書。這一成就標志著雙方在技術整合方面邁出了重要一步。 經過全面嚴格的測試&#xff0c;聚銘網絡自主研發的安全系列產品&#xff0c;包括聚銘下一…

Unity AR+ 百度AI 實現 物體識別與對應英文翻譯

一、前言 我目前實現了拍照保存到手機的功能 我想進一步優化&#xff0c;實現通過手機攝像頭實時識別眼前的物體&#xff0c;顯示對應的英文的功能。 1.項目技術棧&#xff1a;Unity 2022.3.53 Vuforia 11 百度物體識別API 百度翻譯API 2.功能目標&#xff1a;使用手機攝像…

Vue.js第二節

計算屬性、事件綁定、條件判斷、遍歷循環 計算屬性&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

從開源代碼入場無人機學術研究到商業化市場的全路徑指南-優雅草卓伊凡

從開源代碼入場無人機學術研究到商業化市場的全路徑指南-優雅草卓伊凡 引言&#xff1a;開源代碼在無人機研究中的重要性 優雅草卓伊凡在這里告訴大家&#xff0c;如果真的要開始進入無人機領域&#xff0c;我們需要一步步開始研究。目前先去看看開源無人機代碼是尤為重要的&…

window11中開啟ubuntu22.04子系統

一、啟用Windows子系統 打開控制面板 選擇程序然后點擊“啟用或關閉Windows功能” 勾選如下2項&#xff0c;點擊確定 二、安裝內核升級包 打開鏈接https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi下載內核升級包&#xff0c;打開后安裝、重啟電腦…