让我们有一些指向结构的指针,例如tm
:
time_t timestamp = time(NULL);
tm* now = localtime(×tamp);
要在自动内存中创建指向副本的指针,可以使用按值复制:
tm copy = *now;
tm* next = ©
// next points to a copy in memory
但是为什么这个快捷方式不会将值复制到新的内存块?(gcc 编译器)
tm* next = &(*now);
// next points to the address of now
这听起来可能微不足道,但我不确定背后的机制。为什么有区别?