同样想把 int a[100] 的每个元素都变成 1,fill(a, a + 100, 1) 行而 memset(a, 1, sizeof(a)) 不行。根本原因是( )。
- A. fill 按元素逐个赋值;memset 按字节填,每个字节都是 1,四个字节拼成 0x01010101,也就是 16843009
- B. fill 是编译器内建所以更快,memset 是旧接口所以已被禁用
- C. memset 只能用于 char 数组,碰到 int 数组直接编译错误
- D. 两者效果完全一样,用哪个都行