鱼cpython学习者 发表于 2021-7-31 09:38:12

指针算术问题

#include <iostream>
using namespace std;
int main()
{
        double * ps;
       
        ps = new double;
        cout << ps
               << endl;
        ps += 1;
        cout << ps;
       
        return 0;
}
输出为
0xed6d58
0xed6d60
为什么两个地址会相差2?double的大小是8字节呀
我改成
ps = new double
输出变成:
0xca21d0
0xca21d8
又相差8了?
求答复

人造人 发表于 2021-7-31 13:21:35

0x10 - 0x08 等于几?等于 2 吗 ?

万千只cnm 发表于 2021-7-31 13:48:47

0x是16进制啊
8+8= 10

鱼cpython学习者 发表于 2021-7-31 18:15:24

人造人 发表于 2021-7-31 13:21
0x10 - 0x08 等于几?等于 2 吗 ?

噢噢,大意了!
页: [1]
查看完整版本: 指针算术问题