學習筆記 《Linux C語言指標與記憶體》

2021-10-11 22:44:22 字數 1480 閱讀 7765

vi sample.c
以乙個簡單的數值交換為例,引入記憶體概念。

#include

void

change

(int

*a,int

*b)int

main

(void

)

編譯

#安裝gdb除錯工具

sudo apt-get install gdb

#編譯gcc -g sample.c -o sample.out

#執行gdb

gdb sample.out

·

start:進入除錯

break:斷點

list :顯示**

回車鍵:重複上一條命令

print《變數》:列印變數

next :下一行

step : 進入函式?

bt:堆疊狀態

f:切換堆疊

quit :退出

其中高位記憶體是給系統核心用的,程式設計師只用到其下部分。

後續知識概要

綠色部分可自由分配malloc

編譯後的**在**段

變數的記憶體順序:按順序

函式的記憶體順序 :按逆序

靜態變數,全域性變數 都在資料段

陣列:指標陣列的記憶體本質

指標運算:p++,步長為資料型別的長度。p[n]

字元陣列/指標字串:

(gdb) x/6cb 0x7fffffffde03

#連續列印6個位元組的字元

...

char str=

"hello"

;char

*str2 =

"world"

;char str3[10]

;scanf

("%s"

,str)

;//若此時輸入為aaaaaaaaaaaaaaaaaa,

//超過6個字元的部分進入了str3

慕課網 Linux C語言指標與記憶體 學習筆記

include void change int a,int b int main 上述 無法實現a,b數值的交換。改為指標實現 如下 include void change int a,int b int main 3和5可以成功的交換。需要將實參的位址傳到子函式才能改變實參!a,b c語言 int...

linux C語言學習筆記

linux下用c語言解析xml 解析的xml檔案內容 test.xml 第一步 在linux下部署解析xml所有的環境 2 解壓壓縮包 tar zxvf libxml2 2.9.9.tar.gz 進入解壓後的目錄 cd libxml 3 編輯命令 configure 注意 如果configure檔案...

Linux C語言學習筆記1

1 網路配置 虛擬機器 設定 網路介面卡 橋接 適用於網路環境有路由器,可分配多個ip nat 只有乙個ip 2 更新軟體列表 sudo apt get update 如果殘留鎖檔案 刪除方法 sudo rm 鎖檔案路徑 更改為中國伺服器 ubuntu software center edit so...