とある質問:与えられた数値に対して文字列を返す で回答した後に疑問が生じたので質問させて頂きます。
文字列の配列を参照する際に &arr[n - 1][4]
とn-1しないと希望通りの出力がされないのは何故なのでしょうか?
直感的に &arr[n][4]
とすれば希望通りの出力になる気がしたのですがn-1とすることで出力されたのでそういうものなのだと思っていましたが理由が知りたいので教えて下さい。
C
1#include <stdio.h> 2void func(int n) { 3 const char arr[10][4] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; 4 printf("%02d %s\n", n, &arr[n - 1][4]); 5} 6int main() { 7 for (int i = 0; i < 10; i++) { 8 func(i); 9 } 10 getchar(); 11}
※希望する出力にはなっているがコード内で&arr[n - 1][4]
というようにn-1
しなければならない理由が分からない
output
100 0 201 1 302 2 403 3 504 4 605 5 706 6 807 7 908 8 1009 9
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/04 23:13