c言語の課題ですが、@の部分がわかりません。どうすれば良いですか?
c言語の課題ですが、@の部分がわかりません。どうすれば良いですか? printf関数でx[1][0]の値を表示させたい。@に入る語句を答えなさい。ただし、添字演算子、アドレス演算子、配列名xは使わないこと。 #include <stdio.h> int main(void){ int x[2][5] = {{1,2,3,4,5},{10,20,30,40,50}}; int (*p)[5]; p=x; printf("%d\n", @); }
ベストアンサー
説明難しいですけど *(p + a) が x[a] とみなすことができます。 x[a][b]を求める場合は、 x[a][b] → *(x[a] + b)→ *(*(p + a) + b)と表せます。 今回の問題では a=1, b=0なので *(*(p+1) + 0) +0とカッコを省略したら printf("%d\n", **(p+1)); と書けます。
質問者からのお礼コメント
ありがとうございます。
お礼日時:5/25 14:02