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

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

Linux C語言指針與內存

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

最新回答 / 用老名
斷點調試:選定某一行,然后選定調試工具欄最右邊那個手掌符號(F9),然后選定它旁邊那個帶箭頭的符號(F5).

最新回答 / 黑雪墨白
...你看錯了之前的scanf輸出到str,這時候才填充到str3輸出八個字符時輸出到str3,再往后面就是空的了

已采納回答 / 咸魚干兒
因為在RAM內存中最小的存儲單位是8bit也就是1Byte,但是地址總線是32位,所以可以尋址的空間是2^32=4G個最小存儲單位,也就是4GB。編號的數字大小不代表內存最小存儲單位的大小呀。

最贊回答 / 慕后端9788028
p[4]=101代表從初始位置(a的地址就始)以四個字節為一步,向前走4步,到達某個位置,然后對這個位置進行初始化賦值,即把101賦給這個地址所代表的內存空間。p[4],*p=101,p[4]代表從初始位置(a的地址就始)以四個字節為一步,向前走4步,到達某個位置。*p=101,代表此時指針指向的地址(即走了四步后所在位置)并對這個地址所在的內存空間進行初始化,賦值101。p+=3于p=p+3等同,加的是步數,原理跟p[3]一樣

最新回答 / jfhdibrbfjd
這沒有必要的聯系 ?先學那個都行的

已采納回答 / sanhuan1
因為傳入的是地址(引用),所以不需要返回值。地址沒有變,是地址里面的值變了。

已采納回答 / qq_朕有一車刁民_0
==為什么不會被覆蓋,不過你要想避免被覆蓋就把數組分為全局和局部的,兩個都是全局的肯定會被后者覆蓋,前者全局后者局部的,在局部使用的數組不會被覆蓋。

已采納回答 / lifeforme
對于這個問題 請教了一些大神 ? ?給我的答案是:在你調試的時候,系統運行在保護模式,內存不會溢出。你所看到的地址其實是系統映射出來的,實際上不存在。你以為你在訪問某地址 其實并沒有真正訪問具體的內存地址

最贊回答 / 熱噴Redpen
我把代碼稍微改一下: int* a;這里的a就是代表指針變量(int*),而不是一個整型變量(int)所以a存放的是地址,*a才是地址中存放的值(這里的*與第一行的*不同,這個*是取地址的意思)

最贊回答 / 劉小宇0215
先回答第二個問題,注意是16進制,不是十進制,內存可能分配半個字節嗎,隨著內存越來越廉價,程序設計一般是空間換時間,每個數組是int的四個字節。第一個問題是二維數組賦值給一維數組,應該很好理解,不過我不理解你為什么將那個表達式稱為常量表達式,應該是變量表達式吧,而且這個數組[]里應該最大是11,而不是12也不會是12以上,具體細節如果不懂的話,建議你最好在命令行用gdb一步步的慢慢調試,我也是剛剛學,不過你犯的是常識錯誤。
課程須知
本課程是C語言中級課程,為了更好的學習效果: 1、需要有一定的C語言基礎,如果沒有基礎的同學可以看《C語言入門》這門課。 2、本課程是在Linux環境下講解,需要熟悉一些Linux命令。如果不了解的話可以在《Linux C語言編程基本原理與實踐》這門課程中補充
老師告訴你能學到什么?
1、C語言中的指針是怎么回事 2、Linux下gdb調試工具是怎樣使用的 3、指針與內存有著怎樣的關系 4、數組與字符串之間的聯系

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消