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

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

Linux C語言指針與內存

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

    查看全部
  • 傳入時只是傳入了a,b被賦的數值

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

    2021-01-01

  • Array數組其實是一種指針常量,而p則是一種指針變量(數組和指針有一定的通用性,又有一定的差別,指針可以表達數組,而數組不可以表達指針);

    p++:指針偏移,運行效率比數組高;

    為什么p+4;*p=101 與p[4]=101等價???p[4]=101代表從初始位置(a的地址就始)以四個字節為一步,向前走4步,到達某個位置,然后對這個位置進行初始化賦值,即把101賦給這個地址所代表的內存空間。p[4]代表從初始位置(a的地址就始)以四個字節為一步,向前走4步,到達某個位置。*p=101,代表此時指針指向的地址(即走了四步后所在位置)并對這個地址所在的內存空間進行初始化,賦值為101。? ??

    數組名本質是一個數組開頭的地址,可以把它賦值給指針變量

    int array[n]

    int *p=array;

    2也是因為這樣:它是一個固定的值(指針常量),不可以

    array+=2;

    指針可以;

    p+=2;

    ? ? ?

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

    2020-12-16

  • 變量名只是代號,變量的本質是內存;

    在標準的C語言中,不允許直接對內存地址進行操作,只能是對操作系統已經分配給的內存空間進行操作。(防止用戶自己操作內存地址時侵吞系統內存或者其他程序的內存)

    int *p=&a;? ? p 指針指向的變量地址; *p ?指針指向的變量值; &p 指針自己所在的地址。既然一個指針保存的是變量的地址,對32位CPU,地址有4個字節,就需要4個內存單元來存儲,所以每次++p在內存里都是跳4格。?

    函數調用信息保存在棧(stack)中。 int *pa=&a指將a的地址傳給pa。因此p pa看到的是a的地址(&a)。 而p &pa才能看到pa本身的地址。

    查看全部
  • gdb 是gcc自帶的一種調試工具 ;

    gdb -help查看gdb用法;?

    gcc -g +源代碼文件-o +執行文件名(.out 類型) 生成可調試的執行文件;

    gdb +./ 可調試執行文件名;

    進入gdb調試后,l表示查看程序;回車表示繼續上一命令;start表示調試,會自動在main函數第一行程序加斷點;n表示執行新行;s(step)表示進入函數中,需執行到函數所在行;p+變量名表示打印變量數值,bt 查看堆棧;f 1:切換到堆棧中編號為1的函數中;q:退出調試;

    change(int a,int b);實際過程中,只是傳遞給了a,b數值,作用范圍僅在函數內部,故不起換值作用,而change(int *a,int *b )傳遞給了參數地址,對存儲單元中的值進行替換,起實際作用。

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

    2020-12-15

  • 系統內存分配

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

    2020-12-12

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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