int main()
{
int ia1[50];
memset(ia1,5,50*sizeof(int));
cout<<ia1[10];
system("pause");
return 0;
}
??
int main()
{
int ia1[50];
memset(ia1,5,50*sizeof(int));
cout<<ia1[10];
system("pause");
return 0;
}
??
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
因为你把每个字节设置成了
5
,也就是二进制的101
。而
ia1[10]
或任何一个ia1[i]
都是 4 字节组成的整数,int
占 4 字节。所以
ia1[10]
即为 00000101 00000101 00000101 00000101(二进制)。就等于 2^26 + 2^24 + 2^18 + 2^16 + 2^10 + 2^8 + 5,这里
x^y
表示 x 的 y 次方。你用计算机摁一下,精确的等于 84215045!
教训是,
memset
只该用来清空一片内存,即永远设 0。