今天看到幾行**:
if(!a)
else
其中a是結構體變數,猶豫了一下,這麼簡單的東西不應該啊,因此做個學習。
有如下結構體:
typedef struct lsafccdatawritereqtag
lsafccdatawritereq;
我們可以直接用下面的**將結構體變數設定為0:
lsafccdatawritereq req = ;
上面這行**相當於下面這行**:
memset(&req, 0, sizeof(lsafccdatawritereq));
實際上,如果req是全域性的或者靜態的編譯器就預設初始化為0, 如果區域性的(棧上分配)則為隨機值。
如果在棧上分配這個結構並且只初始化第乙個字段,如:
lsafccdatawritereq req = ;
那麼req剩下的字段預設初始化為0(不是隨機值!)
實際上,陣列同樣是這樣,如果棧上的陣列沒有初始化,則為隨機值,如果初始化了第乙個變數或者前幾個變數,則後面的變數預設初始化為0。
本文是根據本帖整理而來。
【2016-07-06】
結構體 結構體變數 結構體指標的基本問題
注意 以下都是32位的系統 一 結構體定義 第乙個問題 下面兩個 struct human struct human 這兩個結構體是否相同?答案 不一樣 原因 根據c語言結構體的機制,我們為結構體變數分配乙個連續空間時,總是以結構體中最大位元組長度型別的整數倍分配。第乙個的記憶體分布圖 length...
C 關於結構體變數和結構體指標變數函式傳遞值得問題
2014年5月29日10 13 35 關於結構體變數和結構體指標變數函式的值傳遞 include includestruct stduent void inputstduent struct stduent pst 輸入函式 void onputstduent struct stduent stu ...
C 結構體變數的引用 結構體變數引用
c 對結構體變數可以在定義時指定初始值。struct studentstudeng1 c 在定義了結構體變數以後,可以引用這個變數。可以將乙個結構體變數的值賦給另乙個具有相 同結構的結構體變數。student1 student2 可以引用乙個結構體變數中的乙個成員的值。student1.num 表示...