2016-05-10 5 views
-3

2d配列が私によって宣言されました。2d配列のこのポインタ記法は期待どおりに機能しませんか?

static char daytab[2][13] = { 
    {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, 
    {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, 
}; 

要素[1] [5]のアドレスの場所が必要です。

私は文char *p = &daytab[1][5];を使用すると動作しますが、ポインタの表記char *p = &(*(*daytab+1)+5);を使用するとエラーが表示されますか?

+2

ポインタと配列の詳細 –

+0

配列の「ポインタ表記法」はありません。配列がポインタと同じであれば、それはなぜ "ポインタ"と呼ばれるのではなく、 "配列"と呼ばれますか? [ask]を参照し、[mcve]を入力してください。表示された行は、コンパイラの警告を生成します。最初に警告を有効にしてすべてのエラー**と警告**を解決してから、**特定の**の質問があるエラー/警告を除いて尋ねます。 – Olaf

+0

技術的には、「2次元配列」は存在せず、配列の配列のみが存在することに注意してください。この区別は、型、特に要素型について話すときに重要になります。 – Jens

答えて

6

a[i]*(a+i)と等価であり、*a+iではないからです。

+0

thankyou @Jens :)もう一度配列の基本に戻ってください。 –

+0

@SwapnilMishra助けになるのはうれしいです。 Stackoverflowの次のステップは、最も役に立つ答えを*受け入れることです。これを行うには、矢印の下のチェックマークをクリックします。これはいくつかのクレジットを得るでしょう。 – Jens

関連する問題