我试图获取数组的大小,将其用于 for 循环中的表达式,并在编译时获取随机总和。
#include <iostream>
int main()
{
int prime[5];
prime[0] = 2;
prime[1] = 3;
prime[2] = 5;
prime[3] = 7;
prime[4] = 11;
int holder = 0;
for (int i = 0; i < sizeof(prime); i++)
{
holder += prime[i];
}
std::cout << "The sum of the 5 prime numbers in the array is " << holder << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
我得到的总和是1947761361. 为什么是这样?在这里使用该功能不应该sizeof()起作用吗?
该sizeof运算符返回其操作数在内存中的大小 - 对于数组,这是元素数乘以每个元素在内存中的大小 - 而不是数组中的元素数。为了你想要的sizeof(array)/sizeof(prime[0])
#include <iostream>
int main()
{
int prime[5];
prime[0] = 2;
prime[1] = 3;
prime[2] = 5;
prime[3] = 7;
prime[4] = 11;
int holder = 0;
int arraySize = sizeof(prime)/sizeof(prime[0]);
for (int i = 0; i < arraySize; i++)
{
holder += prime[i];
}
std::cout << "The sum of the 5 prime numbers in the array is " << holder << std::endl;
}
Run Code Online (Sandbox Code Playgroud)