Har*_*ari 3 c pointers type-conversion
我想详细解释使用%d和%p类型之间的区别printing pointer.
%d
%p
printing pointer
另外为什么%p返回十六进制?什么是当案件%d和%p返回不同的值?数据类型是否仅表示用户想要输出的方式,还是与内存位置有关?
NPE*_*NPE 11
要使程序定义良好,格式说明符必须与参数的类型匹配.因此,您可以使用%p但不能%d打印出指针.(后者可能恰好在某些架构上工作,但在技术上是未定义的行为.)
你不能随意互换的主要原因%d和%p是ints和指针不必具有相同的大小.
ints
打印指针的格式是特定于体系结构的(指针可以具有不同的大小或实际上不同的结构).然而,以十六进制转录内存地址是常见的,因此%p通常这样做.
归档时间:
11 年 前
查看次数:
3616 次
最近记录:
8 年,4 月 前