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

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

Linux C語言指針與內存

難度初級
時長 2小時 5分
學習人數
綜合評分9.60
263人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.4 邏輯清晰
str是指一個指針常量,指向的是一哥char數組開始地址,它指向的地址不能改變,但指向的地址內容是可以改變的,存放在函數棧區。str1是一個指向常理的指針,指向的對象可以變化,但執行的對象的內容不可用改變,這個內容是一個常量,存放在數據段區。所以,可以往str里面重復寫東西,但str1指向的對象,內容不可用再做改變,所以無法重復寫。而str3只是聲明的一個地址而已,這里應該算是c語言的一個bug。只做聲明不做檢查,所以,通過操作str,str3指針直接往里面寫東西,一不小心就內存棧溢出了,會覆蓋掉其他內存,可能會發生這個視頻演示的這種事情,只是覆蓋了其他變量的內容,但也可能程序發生溢出或者崩潰
這一節課,才是整個指針最精華的部分
P[4]不是p往下面移動了4個位置,而是從p開始的地址往后移動4個位置取值,p指向的地址還是不變的
完全不對,數組的地址并不一定是和其他變量是連著的,這個例子完全是在誤導人。
這節課完全不應該這么講~雖然我知道你什么意思,無非就是說指針的地址也可以移動~不會出現數組越界的情況,也就是要十分小心的內存泄露,指針亂指。。。但整個表達方法不好
非常贊?。?/div>

最贊回答 / 1寵兒011
我突然明白了,好傻啊,P運行了一次后,i就為1了呀
a i b array (array[2]并不知道跑到哪里去了)
講的太好了 如果最初就能學到這些就太好了 新人好好學啊 都是精華啊
直接打印x/6cd str應該也可以顯示出str數組的6個數值吧

已采納回答 / onemoo
函數本身代碼的地址并不在棧中,它們在代碼段中。函數調用時才會將參數和各種用到的變量以棧幀結構存在棧中,這會使棧依照調用順序來增長。所以參數的壓棧地址可以說明它們的調用順序。
32位只能尋找4G這沒錯,樓下說的APE,只是通過一種邏輯手段來實現超出4G的尋址,但這不表明32位機的尋址能力能超出4G。事實上,就算是擴展尋址,原理還是一個樣~
課程須知
本課程是C語言中級課程,為了更好的學習效果: 1、需要有一定的C語言基礎,如果沒有基礎的同學可以看《C語言入門》這門課。 2、本課程是在Linux環境下講解,需要熟悉一些Linux命令。如果不了解的話可以在《Linux C語言編程基本原理與實踐》這門課程中補充
老師告訴你能學到什么?
1、C語言中的指針是怎么回事 2、Linux下gdb調試工具是怎樣使用的 3、指針與內存有著怎樣的關系 4、數組與字符串之間的聯系

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消