私はこのコードを持っています。ここではnullポインターを逆参照しているように見えますが、結果をビット単位でAND演算しunsigned int
ます。私は本当に全体を理解していません。それは何をするつもりですか?これはポインタ演算の形式ですか?
struct hi
{
long a;
int b;
long c;
};
int main()
{
struct hi ob={3,4,5};
struct hi *ptr=&ob;
int num= (unsigned int) & (((struct hi *)0)->b);
printf("%d",num);
printf("%d",*(int *)((char *)ptr + (unsigned int) & (((struct hi *)0)->b)));
}
私が得る出力は44です。しかし、それはどのように機能しますか?