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

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

Linux C語言指針與內存

難度初級
時長 2小時 5分
學習人數
綜合評分9.60
263人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.4 邏輯清晰
  • int *p=&a:定義的指針p是整型數據,p++之后,p中的地址就會增加4個字節。

    這就是指針偏移運算,這種方式比CPU直接取地址效率還要高,所以設計程序都會盡可能地采取這種方式。

    p+=3:將指針向下移動3格,如果p是整型,就移動12個字節。(等價于p[3])

    數組和指針的本質都是地址,所以*pa=array,相當于將array數組的地址賦值給pa指針,這樣pa[1]的功能和array[1]的功能就沒有區別了。

    數組是指針常量,指針是指針變量,數組的指向對象是固定不變的,指針變量的指向對象會改變,所以這兩種指針還是有所差別的,指針能實現數組的功能,但是數組不一定能實現指針的功能。

    查看全部
    0 采集 收起 來源:指針運算

    2021-07-18

  • 在函數名前加上星號,也可以調用函數,一般用作回調函數使用。(第31行)

    查看全部
  • 全局變量儲存在數據段,先申明的地址小,后申明的地址大,調用的函數里的局部變量存放在棧中。

    int整型占用4個字節,變量的內存地址只顯示第一個字節。

    編譯后的程序,有可能不會將變量按照編寫代碼的順序存入內存,因為gcc編譯時會對代碼進行優化,它會將同類型的變量在內存中放到一起。

    查看全部
  • 調用的哪個函數,運行到函數的哪一行,變量的相關數據都被記錄保存到棧當中了。

    p &x:表示查看x變量所在的地址。

    變量的本質是地址,是內存空間。

    標準的編程語言不允許直接對內存地址進行操作,操作系統不允許。

    指針也是一個變量類型,保存內存地址。

    查看全部
  • 0x7fffffffffffffff以下的內存由用戶操作,上面的內存地址由操作系統自己調用。

    代碼段放編譯后的程序,數據段放常量、變量,中間的綠色是自由可分配空間。

    查看全部
    0 采集 收起 來源:內存管理

    2021-07-17

  • 一般用gcc指令編譯過的程序不能被用于gdb(一個Linux自帶的調試工具)調試,要用gcc -g xxx.c指令才可以。

    用gdb調試要保存.c的源代碼,否則會有一些調試功能無法使用(比如調試時無法顯示行號)。

    gdb ./xxx.out:表示調試xxx文件

    在調試模式下(括號中含有gdb),輸入l(或者list)顯示整個源代碼,輸入break打斷點,輸入start開始調試(此時會顯示斷點在哪里),p x表示輸出x這個變量的值,n繼續下一步執行,當斷點打到調用的函數前可以用s指令來進入函數內部,bt查看函數堆棧(可以顯示當前函數調用的堆棧情況), f n代表轉到相應的標號n堆棧進行函數的調用。

    本次練習案例中,change函數的a和b是形參,他們值的改變,不能代表main函數里的實參也改變了。

    按q退出調試

    查看全部
    0 采集 收起 來源:gdb工具的使用

    2021-07-16

  • *a代表指針,&a代表取地址

    查看全部
  • 晚安
    查看全部
  • http://img1.sycdn.imooc.com//604325c80001a86411170632.jpg1

    查看全部
    0 采集 收起 來源:內存管理

    2021-03-06

  • 內存地址采用十六進制數表示,十六進制數都是以0x開頭,十六進制數的每一位可以表示四個二進制數,因此對于一個32位系統,其所有的內存空間地址可以被八位十六進制數表示。 每個十六進制的內存地址都指向一個字節的內存空間,因此32位的系統總共可以配置2^10*2^10*2^10*2^2=4GB的內存; 對于64位操作系統,只有前48位編碼的地址用于程序存儲,后十六位為系統內核保留使用的地址編碼段; 內存地址從低到高依次編碼存儲代碼段(函數體指令等)、數據段(常量和全局變量)、堆、自由空間、棧。
    查看全部
  • 內存
    查看全部
  • 什么?
    查看全部
  • 你好啊
    查看全部
    0 采集 收起 來源:gdb工具的使用

    2021-01-26

  • 你好
    查看全部
    0 采集 收起 來源:gdb工具的使用

    2021-01-26

  • 如果想用GDB gcc -g *.c -o *.out
    查看全部
    0 采集 收起 來源:gdb工具的使用

    2021-01-26

舉報

0/150
提交
取消
課程須知
本課程是C語言中級課程,為了更好的學習效果: 1、需要有一定的C語言基礎,如果沒有基礎的同學可以看《C語言入門》這門課。 2、本課程是在Linux環境下講解,需要熟悉一些Linux命令。如果不了解的話可以在《Linux C語言編程基本原理與實踐》這門課程中補充
老師告訴你能學到什么?
1、C語言中的指針是怎么回事 2、Linux下gdb調試工具是怎樣使用的 3、指針與內存有著怎樣的關系 4、數組與字符串之間的聯系

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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