关于sizeof()

nul*_*er2 0 c++ memory

我对sizeof()有疑问.我知道它给出了数组中使用的字节数.我的问题是如果数组没有定义,但它声明了.

例:

float array[3];
int p = sizeof(array);
Run Code Online (Sandbox Code Playgroud)

Jer*_*fin 5

产生的sizeof值仅取决于类型,而不是在运行时1发生的任何事情.

这就是说,尽管名称,float array(3);简单地定义了一个单一的浮子,具有3的初始值,所以int p=sizeof(array);相当于int p = sizeof(float);.

编辑:(对应编辑的问题):是的,float array[3];定义一个3个浮点数的数组,所以int p = sizeof(array);相当于int p = 3 * sizeof(float);


1在C++中.从C99开始,C的情况有所不同(但与手头的问题无关).