關於memset()
回答:
如果以這樣的方式聲明數組 int a[256]={0}; 則數組內全部數字自動初始化為0,即一開始數組內所有元素的值為0 如果這樣聲明 int a[256]; 則數組沒有初始化,則開始時數組內的數字可以是任意值。 注意不是樓上所說,memset是對每個字節賦值,而int有4字節(32位) 比如這樣,memset(a,1,sizeof(a)); 則a中的每個元素都被賦值成為2進製數為,00000001000000010000000100000001,的數 轉換成10進製就是16843009 所以,一般用memset對數組賦0或-1,賦其他的值就要用循環來實現。 關於NULL,\0: stdio.h中有這句: #define NULL 0 NULL在編譯時都轉換為0了; \0是ascll碼中編號為0的那個字符,也就是(int)(\0)==0;
最後更新:2017-04-03 05:39:27