最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言經(jīng)典指針筆試題詳解

 更新時間:2021年10月08日 09:40:34   作者:小軒在不在喲  
今天博主來講解4道經(jīng)典的指針筆試題,很多朋友沒有深刻理解函數(shù)傳參知識都會在這些題目上出錯,下面話不多說,我們開始

題目一(有關(guān)傳值調(diào)用與非法訪問)

請問運(yùn)行Test 函數(shù)會有什么樣的結(jié)果?

在這里插入圖片描述

答 :
程序運(yùn)行會崩潰 ! 且存在內(nèi)存泄漏 ;
原因:

  • 1.str傳給p的時候,是值傳遞,p是str的臨時拷貝,所以當(dāng)malloc開辟的空間起始地址放在p中的時候,不會影響str,str依然為空指針NULL ;
  • 2.當(dāng)str是NULL,strcpy想把 hello world 拷貝到str指向的空間時,程序就崩潰了。因為NULL指向的空間是不能直接訪問的,造成了非法訪問;
  • 3.malloc開辟的空間沒有free釋放也沒有制空,程序不結(jié)束就會一直存在,造成了內(nèi)存泄漏;

正確改正方式為:

在這里插入圖片描述

題目二 (返回??臻g地址的問題 )

請問運(yùn)行Test 函數(shù)會有什么樣的結(jié)果?

在這里插入圖片描述

此類問題是 : 返回??臻g地址的問題
答 :
程序運(yùn)行打印的是隨機(jī)值 ;
原因 :
GetMemory函數(shù)返回的p是數(shù)組名,也就是數(shù)組首元素h的地址 ;
但是 ! GetMemory函數(shù)創(chuàng)建是在棧空間上創(chuàng)建的,return后會銷毀,空間還給操作系統(tǒng),雖然下面Test函數(shù)中的str存了h的地址,但是如果進(jìn)行打印,原來的空間已經(jīng)被銷毀,打印的內(nèi)容自然不是想要的內(nèi)容;(雖然有可能依然打印出 hello world ,那是因為空間暫時還沒被覆蓋使用,本質(zhì)上依然是錯誤的)。

題目三 (區(qū)別傳值調(diào)用的傳址調(diào)用)

請問運(yùn)行Test 函數(shù)會有什么樣的結(jié)果?

在這里插入圖片描述

答 :
雖然能成功打印出 hello world ,但是造成了內(nèi)存泄漏 , 要記得 free 釋放和制空 ;
原因 :
這里傳的是str的地址,區(qū)別題目1的傳值調(diào)用,這里是傳址調(diào)用,形參的改變能影響實參;
malloc開辟的空間地址交給了str ,str指向了這塊空間,所以strcpy能成功使用這塊空間實現(xiàn)打印內(nèi)容;
但是沒有釋放malloc動態(tài)開辟的這塊空間,也沒有制空,造成了內(nèi)存泄漏 ;

題目四 (free釋放的時機(jī))

請問運(yùn)行Test 函數(shù)會有什么樣的結(jié)果?

在這里插入圖片描述

這道題比較簡單 ,解析給在了代碼注釋中 ,大家注意查看 。

🎇結(jié)尾:

有關(guān)這四道經(jīng)典的指針筆試題講解就到此結(jié)束了,如果覺得文章對自己有所幫助,歡迎大家多多點贊收藏✨ ~

到此這篇關(guān)于C語言經(jīng)典指針筆試題詳解的文章就介紹到這了,更多相關(guān)C語言 指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言算法練習(xí)之打魚還是曬網(wǎng)

    C語言算法練習(xí)之打魚還是曬網(wǎng)

    這篇文章主要該大家分享C語言打魚還是曬網(wǎng)的練習(xí),文章主要通過三天打魚兩天曬網(wǎng)的俗語提出問題,在某一天輪到打魚還是曬網(wǎng),下面來看詳細(xì)內(nèi)容吧,需要的朋友可以參考一下
    2022-03-03
  • Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    這篇文章主要介紹了Cocos2d-x 3.x入門教程(二):Node節(jié)點類,本文對Node節(jié)點類做了一個簡明講解及Node類提供的函數(shù)做了說明,需要的朋友可以參考下
    2014-11-11
  • C++通過共享內(nèi)存ShellCode實現(xiàn)跨進(jìn)程傳輸

    C++通過共享內(nèi)存ShellCode實現(xiàn)跨進(jìn)程傳輸

    在計算機(jī)安全領(lǐng)域,ShellCode是一段用于利用系統(tǒng)漏洞或執(zhí)行特定任務(wù)的機(jī)器碼,本文主要為大家介紹了C++如何通過共享內(nèi)存ShellCode實現(xiàn)跨進(jìn)程傳輸,需要的可以參考下
    2023-12-12
  • C++超詳細(xì)講解運(yùn)算符重載

    C++超詳細(xì)講解運(yùn)算符重載

    本文包括了對C++類的6個默認(rèn)成員函數(shù)中的賦值運(yùn)算符重載和取地址和const對象取地址操作符的重載。運(yùn)算符是程序中最最常見的操作,例如對于內(nèi)置類型的賦值我們直接使用=賦值即可,因為這些編譯器已經(jīng)幫我們做好了,但是對象的賦值呢?能直接賦值嗎
    2022-06-06
  • 實例講解C++編程中的虛函數(shù)與虛基類

    實例講解C++編程中的虛函數(shù)與虛基類

    這篇文章主要介紹了C++編程中的虛函數(shù)與虛基類的實例講解,虛函數(shù)與虛基類的使用是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-02-02
  • 使用Objective-C獲取IPHONE手機(jī)IMSI序列號

    使用Objective-C獲取IPHONE手機(jī)IMSI序列號

    這篇文章主要介紹了使用Objective-C獲取IPHONE手機(jī)IMSI序列號的方法以及通過IMSI序列號獲取運(yùn)營商、手機(jī)號的方法,非常的實用,有需要的小伙伴可以參考下。
    2015-04-04
  • C++模擬實現(xiàn)list功能

    C++模擬實現(xiàn)list功能

    list的底層是一個循環(huán)雙向鏈表結(jié)構(gòu),雙向鏈表中每個元素存儲在互不相關(guān)的獨立節(jié)點中,在節(jié)點中通過指針指向其前一個元素和后一個元素,接下來通過本文給大家分享C++模擬實現(xiàn)list的示例代碼,需要的朋友可以參考下
    2021-08-08
  • C++實現(xiàn) 單例模式實例詳解

    C++實現(xiàn) 單例模式實例詳解

    這篇文章主要介紹了C++實現(xiàn) 單例模式實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • c++ 中vector 常見用法

    c++ 中vector 常見用法

    這篇文章主要給大家分享的是c++ 中vector 常見用法,,vector有兩個參數(shù),一個是size,表示當(dāng)前vector容器內(nèi)存儲的元素個數(shù),一個是capacity,表示當(dāng)前vector在內(nèi)存中申請的這片區(qū)域所能容納的元素個數(shù),下面來看看文章的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • VC中實現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法

    VC中實現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法

    這篇文章主要介紹了VC中實現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法,該功能非常實用,需要的朋友可以參考下
    2014-07-07

最新評論

潜山县| 新源县| 景东| 北辰区| 泰来县| 岗巴县| 龙海市| 余干县| 仙游县| 衡山县| 马关县| 玉门市| 吴旗县| 陆良县| 渑池县| 汝城县| 翁源县| 巫溪县| 汝南县| 宁都县| 铅山县| 永宁县| 枝江市| 湖北省| 基隆市| 饶阳县| 建始县| 海城市| 娄底市| 芷江| 林州市| 闽侯县| 双辽市| 开阳县| 泽州县| 云安县| 景东| 龙岩市| 新和县| 龙井市| 屯昌县|