理解したいこと
c言語の勉強をしています.以下の2種類のdefineに関する文の違いは何なのでしょうか?
c
1char a; 2#define ADDR1 (&a) 3#define ADDR2 &a
ADDR1とADDR2はともに,変数aのアドレスを表していると理解していたのですが,以下のソースコードをコンパイルしたところ,ADDR2に関してのみエラーが出たため混乱しています.ご教授いただければ幸いです.
ソースコード
c
1#include <stdio.h> 2 3char a; 4#define ADDR1 (&a) 5#define ADDR2 &a 6 7int main(void){ 8 9 printf("%x\n", ADDR1[0]); 10 printf("%x\n", ADDR2[0]); 11 12 return 0; 13}
発生している問題・エラーメッセージ
main2.c: In function ‘main’: main2.c:10:22: error: subscripted value is neither array nor pointer nor vector printf("%x\n", ADDR2[0]); ^
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。