亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Linux C語言指針與內存

難度初級
時長 2小時 5分
學習人數
綜合評分9.60
263人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.4 邏輯清晰

已采納回答 / onemoo
是的,指針可以指向任何地址,所以也可以指向指針的地址,這種指針就被稱作“二級指針”了。

已采納回答 / onemoo
函數本身代碼的地址并不在棧中,它們在代碼段中。函數調用時才會將參數和各種用到的變量以棧幀結構存在棧中,這會使棧依照調用順序來增長。所以參數的壓棧地址可以說明它們的調用順序。

已采納回答 / onemoo
str2="world" 這樣并不是把world這幾個字符復制到str2所指的區域,字符串字面量做右值時會轉換為指向首字符的指針,所以這語句是把str2指向“world”這個字符串所在的位置。需要復制字符串應使用LS說的strcpy函數。一般程序會把字符串字面量放到只讀數據段中(無法被修改),所以后續通過str2來修改這些內容會引起"段錯誤"。你代碼的另一個問題是,在你給str2第二次賦值后就丟掉了前一次分配的指針,導致無法回收那段內存,引起內存泄漏。

已采納回答 / onemoo
str 比 str2 高 0x40-0x38 = 8字節,str占用6個字節,可以容納開。str3 比 str 高 0x50-0x40 = 16字節,str3占用10個字節,也可以容乃開。一般變量的地址起始要求是2或4的倍數,所以為了對齊,變量之間會有額外的空當。

已采納回答 / onemoo
這是函數指針聲明。這是將pquadrate聲明為函數指針,它指向的是有一個int型參數,返回值為int的函數。這語句同時將pquadrate初始化為quadrate的地址(顯然quadrate應該是個函數名)。一步一步講這個聲明:這語句聲明的是pquadrate變量,前面有個*,而且是用小括號和變量名括起來的(*pquadrate),表明這個變量名優先和*結合。聲明變量時前面有*就代表這個變量是指針,所以pquadrate是個指針。那它指向什么呢?接著看,后面有小括號,前面有類型,表明是個函數。參數就是i...

已采納回答 / noming
棧在程序的運行中有著舉足輕重的作用。最重要的是棧保存了一個函數調用時所需要的維護信息,這常常稱之為堆棧幀或者活動記錄。堆棧幀一般包含如下幾方面的信息:1.函數的返回地址和參數2. 臨時變量:包括函數的非靜態局部變量以及編譯器自動生成的其他臨時變量。首先你要知道,由于外部環境變化,某些函數每一次執行都會返回不同的結果。最典型的就是取隨機數函數了而棧里面存著的就是這些東西。所以,每一個線程都會得到不同的結果,每一個線程也都需要一個存著這個結果的棧!
首頁上一頁12345下一頁尾頁
課程須知
本課程是C語言中級課程,為了更好的學習效果: 1、需要有一定的C語言基礎,如果沒有基礎的同學可以看《C語言入門》這門課。 2、本課程是在Linux環境下講解,需要熟悉一些Linux命令。如果不了解的話可以在《Linux C語言編程基本原理與實踐》這門課程中補充
老師告訴你能學到什么?
1、C語言中的指針是怎么回事 2、Linux下gdb調試工具是怎樣使用的 3、指針與內存有著怎樣的關系 4、數組與字符串之間的聯系

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消