两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

  • 歡迎訪問C語言網(wǎng)www.sztianhecheng.cn 比賽欄每月有獎月賽!舉辦比賽聯(lián)系QQ:2045302297
  • 問題反饋、粉絲交流 QQ群327452739 藍橋杯訓練群:113766799 申請群時請備注排名里的昵稱
  • C語言研究中心 為您提供有圖、有料、解渴的C語言專題! 歡迎討論!

C語言自定義函數(shù)如何返回數(shù)組(上)?

C語言研究中心 CTO 43807次瀏覽 9個評論

最近看到一些同學問題,有提到說:如何在一個函數(shù)中返回數(shù)組呢?

能否直接在自定義 函數(shù)中,寫成char *類型返回值,直接返回呢?,代碼如下:

 

C語言自定義函數(shù)如何返回數(shù)組(上)?

 

 

直接返回str數(shù)組名(注意不需要加&,還有好多同學犯這個錯)

但事實上,運行結果并非正常,我們嘗試在調用函數(shù)中輸出,可以看到結果并非是原來內容(當然你的電腦輸出可能還不是這個樣子)

如下:

 

 

C語言自定義函數(shù)如何返回數(shù)組(上)?

 

 

原因大家可以從str的屬性入手,str本身是一個自定義函數(shù)中的局部變量,是一個數(shù)組有一百個字節(jié),它的生命周期當然也隨著它所在的函數(shù)一起,正所謂“一招天子一朝臣”,隨著fun函數(shù)調用的結束,其中的各種局部變量也將被系統(tǒng)收回,理所當然的str數(shù)組這一百個字節(jié)也將被收回,所以”Hello www.sztianhecheng.cn”這串字符串也就灰飛煙滅了!自然你在main函數(shù)里再輸出肯定已經(jīng)不是原來的內容了!

 

怎么樣,可以理解吧!

不過,還沒有結束,依然有同學繼續(xù)問,可為什么我換成下面這種寫法就可以了呢?

如下圖:

 

 

C語言自定義函數(shù)如何返回數(shù)組(上)?

 

 

 

答曰:這種寫法情況下,str雖也屬于是局部變量,但不是一個數(shù)組,而是一個指針,只有四個字節(jié),存的是在常量區(qū)的字符串” Hello www.sztianhecheng.cn”,但請注意,這個字符串在常量區(qū),而不屬于fun函數(shù)里的部分,全程序都可讀,所以return之后依舊存在,返回的是str里的值,也就是字符串“Hello www.sztianhecheng.cn”的首地址,是一個數(shù),其實相當于把這個字符串的地址在str手里通過返回值轉交到p里。

也可以打個比方:之前只有fun函數(shù)知道這個字符串,但現(xiàn)在已經(jīng)馬上不行了,臨終前,交代:“我快不行了,趕緊把‘Hello www.sztianhecheng.cn’的藏寶地址(字符串首地址)轉交到main函數(shù)里!”

然后就return 快馬加鞭的返回到main函數(shù)手里了!隨后消失…

而后,main函數(shù)獲得之后,你們也就知道了…

 

 

這樣講,大家能理解嗎?

 

后期C語言逆向分析部分,也會有涉及到此處的原理,大家可以再深入學習理解。

同時,下篇我們將為大家講解如何實現(xiàn)自定義函數(shù)的數(shù)組傳遞問題!

 

哦,忘記祝大家2017新春快樂! 祝身體健康、雞年吉祥!

 

C語言網(wǎng)提供「C語言、C++、算法競賽」在線課程,全部由資深研發(fā)工程師或ACM金牌大佬親授課,更科學、全面的課程體系,以在線視頻+在線評測的學習模式學習,學練同步,拒絕理論派,真正學會編程!還有獎學金等增值福利等你!

C語言網(wǎng), 版權所有丨如未注明 , 均為原創(chuàng)丨本網(wǎng)站采用BY-NC-SA協(xié)議進行授權 , 轉載請注明C語言自定義函數(shù)如何返回數(shù)組(上)?!
喜歡 (180)
[jinyangH@aliyun.com]
分享 (0)
發(fā)表我的評論
取消評論
表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
(9)個小伙伴在吐槽
  1. 所有定義的數(shù)組都存儲在棧區(qū)嗎?
    Nrdesire2017-01-29 09:51 回復
    • 局部變量是的,比如咱們例子當中的數(shù)組
      CTO2017-01-29 15:13 回復
  2. 好形象?。。?div id="wueeqya4uq" class="c-meta">老司機2017-02-01 22:11 回復
  • 多謝多謝! :mrgreen:
    CTO2017-02-02 17:00 回復
  • 要不要那么幽默,我被感動到了。哈哈! :mrgreen:
    宸宸2017-05-15 14:50 回復
  • 小哥,我就喜歡你這種中央空調型的教程寫手,自己提出問題,自己解答,把自己學到的經(jīng)驗都分享出來,我為什么對你這么不吝贊詞呢,因為我也是這樣的寫手,哈哈哈
    馬家溝畔的黃先森2018-01-19 09:39 回復
  • 沒想到吧,哈哈,都快到2022年,還有人依然來這里
    康康2021-12-22 17:35 回復
    • 已經(jīng)2022,馬上2023啦
      lemon2022-10-04 18:21 回復
  • 太厲害了這個比看書好理解多了
    王好的2023-10-27 00:25 回復