c ++ sizeof运算符 - 指向double的指针

kir*_*off 4 c++ size double sizeof

我有sizeof运算符(C++)的意外结果.在大班上,我有这些台词

 double * arguments_ = new double();
*arguments_  = 2.1;
*(arguments_+1) = 3.45;
 cout <<  (sizeof arguments_) << ' ' <<  (sizeof arguments_[0]) << ' '<< (sizeof arguments_)/(sizeof arguments_[0]);
Run Code Online (Sandbox Code Playgroud)

这给了我输出4 8 0

双倍大小是8个字节,(sizeof arguments_ [0])= 8.但是,为什么(sizeof arguments_)也不以字节表示(2*8 = 16)?sizeof运算符是否适用

das*_*ght 6

两个值都以相同的单位表示.您有一个32位系统,因此地址的大小是32位,或4个字节.系统上的double大小为8个字节.整数除法的结果4/8为零.