c語言中,易錯知識點

2022-09-23 19:51:06 字數 935 閱讀 9043

1.結構體的計算

//struct bbb*p;//sizeof(struct bbb)=16;

//int main()

//2.結構體中結構體,共用體中結構體的大小

//union aaahalf;

// short kk;

//}number;

//struct bbbhalf;

//struct tagccc

//half;

// long kk;

//};//結構體是個整體按4對齊6+4=10,short和long中最大所佔位元組為4,4的整數倍為12

//int main()

//執行結果:

1位元組對齊:4 6 8

4位元組對齊:6 8 12

3.如果case語句中沒有break,那麼它之後的語句都會被執行。

4.指標和const的宣告:

(1)指標所指物件是可讀的

const  int *p;

int  const *p;

(2)指標是可讀的

int  *const p;

(3)指標和指標所指物件都是可讀的

const  int * const p;

int  const *constp;

5.動態開闢

void getmemory(char *p,int len)

int main()

上述**有三處錯誤!!!

a.此時呼叫函式p動態開闢和主函式p所指不是同乙個地方,因為p只是臨時拷貝,沒傳位址過去。

b.strcpy,出現錯誤,此時p無指向。

c.free時並未將其開闢(臨時變數)的釋放,且應在free後讓指標指向空。

正確**為:

void getmemory(char **p,int len)

int main()

C易錯知識點

參考酷客網,對其進行了簡單整理 1 下面的程式並不見得會輸出 hello std out 你知道為什麼嗎?include include intmain return 0 參 stdout 和stderr 是不是同裝置描述符。stdout 是塊裝置,stderr 則不是。對於塊裝置,只有當下面幾種情...

C 易錯知識點歸納

物件導向開發的四大特性 三字元組 內建型別所佔記憶體大小 單位 位元組 typedef 為乙個已知型別取新名字 列舉 派生資料型別,只有賦值運算子沒有定義算術運算 變數命名 字母 下劃線開頭,可以有數字,不能有標點符號。大小寫敏感。變數宣告 未開闢空間。extern實現,若在其後賦初始值便為定義。變...

Java 易錯知識點

1 以下程式執行的結果是 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 classx classy publicclasszextendsx publicstaticvoidmain string args zyxx zyxy yxyz xyz...