Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私はそうするのだろうか:
void *ptr = NULL; printf("%p\n", ptr);
常に(nil)出力しますか?
(nil)
それは標準ライブラリの実装に依存しますか、それともC99標準仕様ですか?
私のシステムではそれが得られる(null)ので、実装が定義されていると思います。より一般的には、すべて%pの印刷は実装定義です。
(null)
%p
7.21.6.1 引数はvoidへのポインタでなければなりません。ポインタの値は、実装で定義された方法で、一連の印刷文字に変換されます。
7.21.6.1
引数はvoidへのポインタでなければなりません。ポインタの値は、実装で定義された方法で、一連の印刷文字に変換されます。
常に(nil)を与えますか?
全くない。私のマシン(Macを使用i686-apple-darwin11-llvm-gcc-4.2)では、印刷され0x0ます。
i686-apple-darwin11-llvm-gcc-4.2
0x0