視頻教程課件及示例代碼l08-03函數(shù)的傳值_第1頁
視頻教程課件及示例代碼l08-03函數(shù)的傳值_第2頁
視頻教程課件及示例代碼l08-03函數(shù)的傳值_第3頁
視頻教程課件及示例代碼l08-03函數(shù)的傳值_第4頁
視頻教程課件及示例代碼l08-03函數(shù)的傳值_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、C/C+學習指南 第08.3講:函數(shù)的傳值作者:邵發(fā) 官網(wǎng): 答疑: 函數(shù)的傳值觀察以下代碼void test(int a) a += 1;int main() int n = 10; test(n); printf(“now: n=%d n”, n); / 此時n的值是10?11? return 0;C/C+學習指南 邵發(fā) 函數(shù)的傳值我們發(fā)現(xiàn),無論在test函數(shù)對a進行怎么修改,都對main函數(shù)里的n沒有影響 。思考以下問題:為什么修改a的值 ,對m沒有影響 ?怎么才能在test里修改n的值?C/C+學習指南 邵發(fā) 函數(shù)的傳值在函數(shù)的調(diào)用過程中, test (n);只是把n的值傳給它了tes

2、t函數(shù),并不是把變量傳給了test這個過程叫做“傳值”調(diào)用void test(int a)傳入的值,用于對參變量初始化,相當于發(fā)生了一個int a = n的操作。C/C+學習指南 邵發(fā) 函數(shù)的傳值參變量和main函數(shù)里的變量,是完全不同的兩個變量,內(nèi)存位置也不同。所以之前不會有影響。以我們目前的知識,在test函數(shù)是無法改變main函數(shù)的變量的值的。(第9章會討論這個問題,并給出解決辦法)C/C+學習指南 邵發(fā) 變量名相同?不同函數(shù)里的變量名可以相同,互不影響。更有迷惑性的代碼。void test(int a) / 注:兩個a是不同的變量 a += 1;int main() int a = 1

3、0; test(a); printf(“now: a=%d n”, a); return 0;C/C+學習指南 邵發(fā) 函數(shù)的傳值:隱式轉(zhuǎn)換一般情況下,我們要求傳遞的值的類型,應該和函數(shù)的參數(shù)類型一致。在不一致的時候,如果能滿足隱式轉(zhuǎn)換的規(guī)則(第6章)則也可以編譯通過。例如,double sum (double a, double b) return a + b;int main() int m = 10; int n = 11; int result = sum(m, n); return 0;語法檢查:嘗試 doubla a=m ; double b=n; 可以隱藏轉(zhuǎn)換,所以編譯通過。C/C+學習指南 邵發(fā) 函數(shù)的傳值:隱式轉(zhuǎn)換#include int sum (int a, int b) / int a=11.2; int b=13.2; OKreturn a + b;int main()int m = 10;int n =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論