编译器如何在程序执行之前知道平方根在内存中的位置?我原以为每次程序执行时地址都会不同,但这段代码可以运行:
constexpr double(*fp)(double) = &sqrt;
cout << fp(5.0);
是因为地址相对于内存中的另一个地址吗?我认为不是,因为fp
的值很大:0x720E1B94。