除非真正理解 memset。 慎用 memset:
void *memset(void *s, char ch, unsigned n)
將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ascii值,
void *memset(void *s,int c,size_t n)
將已開闢記憶體空間 s 的首 n 個位元組的值設為值 c
memset是以位元組為單位,初始化記憶體塊。當初始化乙個位元組單位的陣列時,可以用memset把每個陣列單元初始化成任何你想要的值,比如,
例如char data[10];
memset(data, 1, sizeof(data)); // right
memset(data, 0, sizeof(data)); // right
而在初始化其他基礎型別時,則需要注意,比如,
int data[10];
memset(data, 0, sizeof(data)); // right
memset(data, -1, sizeof(data)); // right
memset(data, 1, sizeof(data));
// wrong, data[x] would be 0x0101 而不是 1
即:0000 00001 0000 00001 而不是 0000 0000 0000 00001
附:計算機中的數用補碼儲存
0的補碼是00000000。 (8位長為例)
0的補碼 0000 0000
-1的補碼 1111 1111
1的補碼 0000 0001
真正理解SqlHelper嗎?
從個人版機房到現在的合作,一直在用sqlhelper。那到底為什麼要用?然後怎麼去用?真的了解嗎?調機房的時候,我發現自己對sqlhelper的理解特別的淺顯,只是大概說一下作用,一些具體的就不明白了。下面我主要總結一下自己學習中的缺失的部分。sqlhelper 是乙個基於.net framewor...
真正理解java wait notify
從字面上理解,notify 方法能夠喚醒乙個正在等待該物件的monitor的執行緒,當有多個執行緒都在等待該物件的monitor的話,則只能喚醒其中乙個執行緒,具體喚醒哪個執行緒則不得而知。nofityall 方法能夠喚醒所有正在等待該物件的monitor的執行緒,這一點與notify 方法是不同的...
真正理解矩陣
孟巖,從很獨特的角度理解矩陣。理解矩陣 一 理解矩陣 二 理解矩陣 三 這裡的運動不同於物理中連續的運動,而是瞬間的從一點到另一點的運動 即躍遷 術語為 變換 因此,矩陣是對線性空間裡變換 即線性變換 的描述。選的基 座標系 不同,同乙個變換就有不同的描述,即有不同的矩陣,這些矩陣是相似的,矩陣a,...