memset使用技巧
阿新 • • 發佈:2018-02-10
strong 數組 eof 負數 post style img blog com
memset可以對高位數組進行初始化,非常方便。需要註意的是memset的頭文件是string.h和memory.h 。
下面來談memset的4個使用技巧:
(註:一下dp高維數組都是全局變量,局部變量請自行修改sizeof語句)
1. 用memset賦 0
memset(dp,0,sizeof(dp));
2. 用memset賦 -1
memset(dp,-1,sizeof(dp));
在計算機中,數據用補碼保存。-1的補碼(32位)是0xFFFFFFFF,(8位,一個字節)是0xFF,memset是按字節填充的,所以不影響賦值的真實性。
3.用memset賦 INF
memset(dp,127,sizeof(dp));
127用8位二進制數表示是0b01111111:
用四個0b01111111填充到一個32位的int中:
得到了一個接近32位無窮大(0x7FFFFFFF=2147483647)的數。
4.用memset賦 - INF
memset(dp,-127,sizeof(dp));
-127用補碼表示是 0b10000001 ,用4個 0b10000001 填充到int中:
得到了一個絕對值非常大的一個負數
memset使用技巧