printf %p格式和basic_ostream格式有关系吗?

Is there a relationship between printf %p format and basic_ostream format?

据我所知 %p 在 printf 中使用 writes an implementation defined character sequence defining a pointer.

但是它总是应该写与

相同的字符序列吗?
basic_ostream& operator<<( const void* value );

?

我没有找到关于这两种格式之间潜在关系的任何信息,在许多情况下字符序列看起来是相同的,但它是有保证的,还是指针的两种格式可以独立实现定义不同的字符序列?

std::basic_ostream::operator<< for pointers uses std::num_put::put, which is defined to work the same as std::printf() 加上 %p 加上本地特定的转换和填充。