結構體指標使用時的小陷阱

2021-10-07 10:34:39 字數 387 閱讀 2572

最近,使用結構體指標時,偶遇bug,後弄清楚了原因,在此記錄一下,防止以後重蹈覆轍,也提醒一下可能和我遇到一樣問題的夥伴們…

為了防止錯誤的樣例先入為主,在這裡,先列出正確的開啟方式:

typedef

struct tnode

*tree;

錯誤的栗子

typedef struct tnode

*tree;

why?

因為在自定義的結構體中預先使用起好的別名(在這裡指tree)是不被認可的,咱得先把別名起號讓人家知道不是,不然別人怎麼知道可以用這個別名來稱呼你呢?

結構體指標變數使用時的注意事項

在使用結構體指標變數的時候,往往容易犯乙個 低階 錯誤。即定義乙個結構體指標變數後就直接對結構體指標變數所指向的結構體成員進行操作,從而產生一些莫名其妙的錯誤。我們必須要給結構體指標變數賦予乙個有效的結構體變數位址,才能正常操作結構體指標變數。比如 struct uart main 這個程式輸出的值...

static 指標 結構體使用

static 1.修飾區域性變數 將變數的生命週期變為和整個程式相同 但是不改變作用域 2.修飾全域性變數 將改變作用域為當前檔案 3.修飾乙個函式 修改了函式的作用域為當前檔案printf p p p 列印指標變數 int p int 中的 和int構成乙個整體 指標型變數 乙個指標變數占用 4 ...

C語言結構體與結構體指標的使用

c語言結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合。說的通俗一點就是乙個集合。c語言是一門面向過程的程式語言,而結構體的使用在某些層次上跟物件導向有點異曲同工之處了。下面回歸正題,學習一下結構體以及結構體指標的知識。一 結構體變數的定義和初始化 1 首先我們來看一下結構...