ポインターの理論が特に厄介だとは思いませんが、表記のいくつかに困惑することがあります。次の例で、誰かが線がどのように機能するかを説明できますかp = (int*) a
? 私がコードについて持っている説明は、この行が最初の配列の最初の要素のアドレスをポインター p に格納するだけであることを示唆していprintf("%u", *p)
ます5
。この場合、この行は単純に間接的な書き方p = a[0]
ですか?
int main()
{
int a[][4] = {
5, 7, 5, 9,
4, 6, 3, 1,
2, 9, 0, 6
};
int *p; // create an integer pointer
int (*q)[4]; // create a pointer to a four-element integer array
p = (int*)a; // ?
q = a;
printf("%u %u\n", p, q);
p++;
q++;
printf("%u %u\n", p, q);
return 0;
}