數(shù)組初始化的時候常用for()循環(huán),不過如果考慮效率的話,最好用memset(),下面簡單介紹以下memset()。
函數(shù)原型:
void *memset(void *s, int ch, size_t n)
函數(shù)解釋:將s中前n個字節(jié)替換為ch并返回s;
memset:它包含在<memory.h>或者<string.h>中。作用是在一段內(nèi)存塊中填充某個給定的值,它的操作對象為單個字節(jié),是對較大的結(jié)構(gòu)體或數(shù)組進(jìn)行清零操作的一種最快方法。
提到memset()就不得不提到sizeof(),因為sizeof()使用不好可能給memset()帶來很隱蔽的錯誤:
int some_func(struct something *a){
…
…
memset(a, 0, sizeof(a));
…
}
上面這段代碼是不能達(dá)到對a[]清零的目的的,因為some_func()函數(shù)的參數(shù)已退化為指針,而不是數(shù)組對象,因此這里的sizeof(a)在32位機(jī)器上返回的應(yīng)該是4,而不是a[]數(shù)組的長度(所占字節(jié)數(shù))。
sizeof是C/C++中的一個操作符(operator),而不是函數(shù),其作用就是返回一個具有明確類型的對象或者類型所占的內(nèi)存字節(jié)數(shù)。
它有以下特點:
1.它在程序編譯時被執(zhí)行
2.它的操作對象可以是某個對象,或者某種類型
3.當(dāng)適用于一個變量時, sizeof 返回實際的大小,當(dāng)適用于靜態(tài)的空間數(shù)組, sizeof 返回全部數(shù)組的尺寸。
看完百科上關(guān)于sizeof()的介紹,心中頓時產(chǎn)生了一堆問號,真是學(xué)的越深入,不懂得越多啊╮(╯﹏╰)╭
以上內(nèi)容均來自百度百科,感謝默默編輯詞條的大神們。
詳情參閱:
http://baike.baidu.com/view/982208.htm
http://baike.baidu.com/view/1078660.htm
| 只有注冊用戶登錄后才能發(fā)表評論。 | ||
|
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
|
||
|
相關(guān)文章:
|
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|
|
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
|---|---|---|---|---|---|---|---|---|---|
| 26 | 27 | 28 | 29 | 30 | 31 | 1 | |||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | |||
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | |||
| 30 | 1 | 2 | 3 | 4 | 5 | 6 | |||
常用鏈接
隨筆分類(111)
- C語言(3)

- DP(9)

- Java筆記(1)

- Java基礎(chǔ)練習(xí)(25)

- 安卓(1)

- 本科畢設(shè)(1)

- 博弈(1)

- 大數(shù)(7)

- 回溯(2)

- 排序(10)

- 暑期培訓(xùn)周賽(3)

- 數(shù)據(jù)結(jié)構(gòu)(7)

- 數(shù)論(1)

- 水題(8)

- 圖論(24)

- 網(wǎng)選訓(xùn)練(8)

隨筆檔案(127)
- 2014年3月 (1)
- 2013年7月 (10)
- 2013年5月 (1)
- 2013年4月 (11)
- 2013年3月 (8)
- 2012年10月 (1)
- 2012年9月 (12)
- 2012年8月 (38)
- 2012年7月 (14)
- 2012年6月 (2)
- 2012年5月 (8)
- 2012年4月 (6)
- 2012年3月 (6)
- 2012年2月 (4)
- 2011年8月 (5)
friends
最新評論

- 1.?re: 線段樹
-
是這個樣子的,所以在OJ有時候“卡住”了也不要太灰心,沒準(zhǔn)真的不是自己的原因呢。
加油,祝你好運(yùn)啦! - --小鼠標(biāo)
- 2.?re: 線段樹
- 對于編程競賽來說,Java所需時間一般為C/C++的兩倍。合理的競賽給Java的時間限制是給C/C++的兩倍。
- --傷心的筆
- 3.?re: poj1273--網(wǎng)絡(luò)流
- 過來看看你。
- --achiberx
- 4.?re: (轉(zhuǎn))ubuntu11.10無法啟動無線網(wǎng)絡(luò)的解決方法
- 膜拜大神。。查了一個下午資料終于在這里解決了問題。。神牛說的區(qū)域賽難道是ACM區(qū)域賽。。?
- --Hang
- 5.?re: 快速排序、線性時間選擇
- 博主,謝謝你的文章。你的方法可以很好的處理分區(qū)基準(zhǔn)在數(shù)組中重復(fù)的情況,書上的方法遇到這種輸入會堆棧溢出。書上給出了解釋但給的方法貌似不簡潔。
- --lsxqw2004