2017-10-31 25 views
-3
void main() 
{ 
    int a=5,*p,*c=NULL; 
    printf("p=%u",p); //OUTPUT p=3839036080 
    printf("\nc=%u",c); //OUTPUT c=0 

} 

pにはまだ何も指定されていません。 cにはNULLが割り当てられます。つまり、値が0に保存されていますか?このプログラムでは、出力を説明してください

+0

初期化されていない変数は、ガベージ値であっても値を持ちません。ポインタは変数でもあり、メモリ内の名前付きの場所です。 –

+0

[CではNULLを常にゼロにしていますか?](https://stackoverflow.com/q/9894013/669576) –

+0

* pにはアドレスを割り当てていません。それは何ですか? –

答えて

0

私たちはpに何のアドレスも割り当てていませんでした。

それは何かを印刷することがあるので、あなたは、printf()と呼ばれます。変数は初期化されていないので、変数を保持するために使用されたメモリに何があったのかを出力します。

cにはNULLが割り当てられているので、値は0として保存されますか?

はい、NULL0(char *)0、または何か同等のいずれかに展開されるマクロです。