中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言的指針怎么定義

發布時間:2021-11-22 14:59:55 來源:億速云 閱讀:139 作者:iii 欄目:互聯網科技

這篇文章主要介紹“C語言的指針怎么定義”,在日常操作中,相信很多人在C語言的指針怎么定義問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言的指針怎么定義”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

 函數參數傳遞的不可逆性
當我們需要頻繁地使用某一段代碼來計算三角形面積時,那么可以將實現這一功能的代碼片段打包成一個函數,提供給其他代碼調用。如“float triangle_area(float base, float height)”,在這個函數中,“triangle_area”為函數名,它是一個返回“float”類型的函數,而括號中的“float base”和“float height”正是用來分別將需要求解的三角形的底邊長和高傳遞進函數的參數,我們稱為“形式參數”或者“傳遞參數”。其他代碼需要使用求解三角形的面積時,只需要調用“triangle_area”即可。一旦這個函數被調用之后,程序立即會跳轉到三角形面積求解的代碼中去進行計算,計算完成后,會以“float”的形式將三角形的面積返回出來。所謂返回值,即函數運算完成之后返回結果的一個數值,一個函數最多只能返回一個返回值,我們只需要在函數內部定義一個與函數類型一樣的變量,將運算結果存儲在里面,并且使用“return”關鍵詞即可將其返回。關于三角形面積求解的函數,如圖6-1-1所示。
                           
C語言的指針怎么定義
圖6-1-1 三角形面積函數
 
回顧完成上面內容之后,趁著記憶比較新鮮,再來用C語言來解決一個問題,假設小明和小麗是一對好朋友,小明手里有一杯焦糖瑪奇朵,小麗手里有一杯雙拼奶茶,他們各自喝了半杯,都想嘗一下對方手中飲料的味道,本來交換一下是一件很簡單的事情,但是他們又不希望各自的杯子被對方喝到,那么只能交換杯子中的飲料了,請幫他們設計一個函數,用來交換杯子中的飲料。
這其實是一個非常簡單的變量內容交換問題,只需要再去找一個杯子,把小明的飲料倒在里面,然后把小麗的飲料倒給小明,最后將第三個杯子中原本小明的飲料倒給小麗就可以解決,我們可以很簡單地來完成這個函數,如圖6-1-2所示。

C語言的指針怎么定義
圖6-1-2 交換杯子中的飲料

小明和小麗看了這個算法之后,他們都不想動手來倒這杯飲料,就這樣僵持著,他們想到了一個辦法,交給小明的姥姥來完成這個交換飲料的功能,那么此時,小明的姥姥就相當于這個飲料交換的特定模塊,我們可以將其聯想成一個C語言中的函數。小明的飲料和小麗的飲料傳給姥姥時,就相當于將傳遞參數傳給函數。那么因此我們可以寫出如圖6-1-3中的代碼。

C語言的指針怎么定義
圖6-1-3 變量交換函數

仔細觀察一下圖6-1-3中代碼的輸出值,我們驚訝地發現,函數并沒有達到我們想要的結果,小明杯子中的飲料和小麗杯子中的飲料還是沒有交換,仔細閱讀了多次代碼,沒有發現任何問題。這個確實不是代碼的問題引起的。借用上面這個故事,有一個關于函數調用的重要特性大家一個要注意,即函數傳遞參數是單向傳遞的,無論函數中對形式參數如何改變,在調用函數處傳遞參數的值完全不受影響,這個一定要注意。而函數唯一可以將結果傳遞給主函數的途徑就只有返回值這一個途徑,但是函數的返回值又是唯一的。這就類似于姥姥看到了兩個娃娃在把杯子中的飲料倒騰來倒騰去不衛生,不肯交換完成一樣。因此對于上面這個問題我們是否就束手無策了?
繼續我們的故事,正當此時,路過的老王叔叔過來了,看到大家都屬愁眉苦臉的,上去詢問情況,了解情況后,王叔發現,這兩個杯子一模一樣,并且每個杯子內部是有內膽的,只需要將內膽擰下來,交換一下即可,最后大家都開開心心,各回各家了。我們可以寫出如圖6-1-4中的代碼。

C語言的指針怎么定義
圖6-1-4 利用指針交換變量中的數值

到此,關于“C語言的指針怎么定義”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临邑县| 江孜县| 大新县| 乌拉特后旗| 永寿县| 威信县| 大竹县| 涟源市| 南陵县| 芦溪县| 麦盖提县| 贵阳市| 托克托县| 玉门市| 佳木斯市| 深圳市| 班玛县| 阳谷县| 彝良县| 抚州市| 常宁市| 都匀市| 斗六市| 新巴尔虎右旗| 涿鹿县| 东阳市| 闽清县| 灵山县| 大冶市| 武穴市| 绥滨县| 鲁山县| 万年县| 四子王旗| 稷山县| 贡山| 德保县| 莲花县| 德令哈市| 临澧县| 鄂托克前旗|