#該当のソースコード
以下のコードは、アドレスとポインタの概要を理解するためのものです。
C
1#include<stdio.h> 2 3int main(void) 4{ 5 int* a; 6 int b; 7 8 a = &b; 9 *a = 5; 10 11 printf("b=%d,&b=%p\n", b, &b); 12 printf("*a=%d,a=%p\n", *a, a); 13 return 0; 14}
下のコードは、上のコードの8行目「a = &b;」と9行目「*a = 5;」を入れ替えたものです。
C
1#include<stdio.h> 2 3int main(void) 4{ 5 int* a; 6 int b; 7 8 *a = 5; //初期化されていないメモリ'a'を使用しています。 9 a = &b; 10 11 printf("b=%d,&b=%p\n", b, &b); //初期化されていないメモリ'b'を使用しています。 12 printf("*a=%d,a=%p\n", *a, a); 13 return 0; 14}
#解決したいこと
上のプログラムと下のプログラムは、ただ実行する順番を入れ替えただけ (1+2を2+1にしたようなもの) なのになぜ下のコードはエラーが出て実行できないのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/29 00:35