私がやるのであれば:printfでヌルポインタを出力すると(nil)が出力されますが、&ptrはアドレスを出力します。どうして?
int *ptr = NULL:
printf("%p", ptr);
私は(ゼロ)は、プリントアウトを得ます。これはポインタのアドレスを出力していますか?ポインタはヌルポインタを指します。
が、私がしなければ:
int *ptr = NULL;
printf("%p", &ptr);
私はメモリアドレスを取得します。どうしてこれなの?それは、実際のNULLメモリの場所がどこにあるのかを示すためですか?この場所は常に変化しますか? 2番目のコードを使用するたびに、私は別のメモリアドレスを取得し続けます。ポインタptr
に格納されている
'int ptr = NULL'はポインタではありません。これは整数です。 –
@RishikeshRaje申し訳ありません! *を忘れてしまった。ありがとう! – MoMoe0
'%p'でヌルポインタを出力するときに、' printf() 'のどの変種に'(nil) 'が与えられますか? –