首先,sizeof是一個操作符,不是一個函數,但是當操作數爲類型名稱時需要用小括號將類型名稱包圍起來(操作數爲變量時不需要),這一規則使得sizeof看起來想一個函數一樣。其次如果sizeof的操作數爲靜態數組名時,得到的結果是整個數組所佔的空間大小(以byte爲單位),但是如果操作數動態數組時,得到只是一個指針變量所佔的用的大小(我的機器上是4byte)。這是因爲數組和指針實際上是兩個不同的對象(詳見《C專家編程》)。動態數組名就是一個指針,而靜態數組名代表的是整個數組。
memset和memcpy兩個函數的最後一個參數可以設爲0,但是不可以設爲負數,這是因爲最後一個參數的類型是size_t,而size_t的的定義爲:typedef unsigned int size_t。如果這個參數被設爲負數,函數傳參時會將其隱式轉換爲無符號數,而負數二進制表示的第一位是1,轉爲無符號數時會很大,所以必然出錯。
關於sizeof和memset/memcpy的一些事
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux下使用docker創建nginx圖片服務器(六)
记 录 成 长
2020-07-07 22:48:48
簡記git上傳GitHub
Vic_Hall
2020-07-07 09:29:29
Chrome瀏覽器打開所有網頁都提示 崩潰、重新加載、即使設置擴展程序也打不開
weimingyu945
2020-07-07 02:09:51
Linux下使用docker部署VUE(五)
记 录 成 长
2020-07-06 17:37:15
Android Tween動畫(網上總結)
xiaozhucdj
2020-07-06 14:46:19
android studio 快捷解決自定義,只適用於我
xiaozhucdj
2020-07-06 14:46:19
頁面加載順序及觸發事件
追逐春天的大孩子
2020-07-06 10:34:21
選擇城市列表數據格式轉化
追逐春天的大孩子
2020-07-06 10:34:21
三種方法實現頁面滾動條直接滾動到頂部
追逐春天的大孩子
2020-07-06 10:34:10
checked的妙用
AdeZhang1
2020-07-06 03:04:05
shopify使用記錄(未完待續....)
AdeZhang1
2020-07-06 03:04:05
RSA之超過128個字節的加密
青衫忆笙iG
2020-07-05 22:24:17
RSA之生成公私鑰的模值
青衫忆笙iG
2020-07-05 22:24:17