一般情況下用「.」,只需要宣告乙個結構體。格式是,結構體型別名+結構體名。然後用結構體名加「.」加網域名稱就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a;一樣。
而用「->」,則要宣告乙個結構體的指標,還要手動開闢乙個該結構體的記憶體,然後把返回的指標給宣告的結構體指標,才能用「->」正確引用。否則記憶體中只分配了指標的記憶體,沒有分配結構體的記憶體,導致想要的結構體實際上是不存在。這時候用「->」引用自然出錯了,因為沒有結構體,自然沒有結構體的域了.
上圖為列子,若不malloc手動開闢記憶體位址,直接採用l1->data=1賦值是無效的。
關於C語言中 和 的區別
關於c語言中 和 的區別 當我們在coding的時候,使用兩個變數相加的情況,或者用 或者用 都是沒有問題,比如 0x1000 0x55 0x1055 0x1000 0x55 0x1055 介於以前這種固有的思維,因此沒有把其中不同仔細考慮,直到這幾天的bug,才恍然大悟,還是因為基礎知識的不紮實和...
c語言中關於const的使用
const是c語言中乙個十分重要的修飾 我總結了它的含義使用以及作用如下 1.修飾的資料型別是常型別,常型別的變數或物件的值不能被改變 const int i 10 int a i 等價於int a 10 2.便於進行型別檢查,使編譯對處理內容有更多的了解,消除了一些隱患。3.方便的進行引數的調整和...
c語言中return與exit的區別
tag 1,exit用於在程式執行的過程中隨時結束程式,exit的引數是返回給os的。main函式結束時也會隱式地呼叫exit函式。exit函式執行時首先會執行由atexit 函式登記的函式,然後會做一些自身的清理工作,同時重新整理所有輸出流 關閉所有開啟的流並且關閉通過標準i o函式tmpfile...