通常、変数'abc'
は としてアドレス指定できます'&abc'
。
c でアドレス指定できない変数はどのようなものですか? なんで?
これは* C99 標準のセクション 6.5.3.2 で対処されています (強調は鉱山):
単項演算子のオペランドは、関数指示子、単項演算子または単項演算子の結果、またはビットフィールドではなくストレージクラス指定子で宣言されていないオブジェクトを指定する左辺値
&
のいずれかでなければなり ません。[]
*
register
この方法ではレジスタ変数にアクセスできません。レジスターにはアドレスがありません。したがって、アドレス演算子 (&) をレジスタ変数に適用することはできません。