次のコードでは*a
、右辺値ですか、それとも左辺値ですか?
#include <stdio.h>
void main()
{
int b=2;
int *a=NULL;
a=&b;
*a=3;
printf("%d",*a);
}
http://en.wikipedia.org/wiki/Value_%28computer_science%29で公開されているとおり:
左辺値には、実行中のプログラムがプログラムでアクセスできるメモリ アドレスがあります (たとえば、C/C++ の「&」などのアドレス演算子を介して)。これは、変数または特定のメモリ位置への参照解除された参照であることを意味します。右辺値は、左辺値 (以下を参照) または非左辺値にすることができます
したがって、 *a は左辺値です