2次元配列とポインタについて少し理解する

#include <stdio.h>
int main(void)
{
    
    
    
    int num[4][2];
    num;
    num[0];
    return 0;
}

numとnum [0]の違いについて説明します。私の分析によると、どちらもアドレスを表していますが、num [4] [2]を使用して視覚化して理解します。

ここに画像の説明を挿入
これは、空間内の2次元配列のストレージモードである必要があります。

num
num [0]
格納されている最初の要素のアドレスは、num [0] [0]のアドレスですが、2つは異なることを表していますが、2つの間に少し違いがあります。

num、num + 1、num + 2
は、2つのint型のサイズを表すアドレスです。つまり、
num [0]、num [1]、num [2]は、この行の最初の要素のアドレスを表します。タイプintのアドレス。
ただし、&num [0]はnumと同じです。この行を表し、配列を表します。

2次元配列は、2つの配列と見なすことができます。最初に行にアクセスし、次に列にアクセスします。最初に行配列を入力し、次に行配列に格納されているアドレスに従って列配列を入力します。列配列には、数値または要素のみが格納されます。

numはセカンダリポインタです。
最初の* numは、ソリューションアプリケーションを表し、配列のこの行を入力してから、アプリケーション
numを再度解決するか、配列の最初の要素のアドレスに格納されている数値を抽出するか、
( num + 0)+0)、内側の括弧は、配列が括弧の外側にある最初の要素を表します。これは、num [0] [0]と同じ意味を持つ最初の要素です。

これは主に、メモリ内の2次元配列のストレージモードについて説明するためのものです。
エラーが発生した場合は、アドバイスをお願いします。
もっとある。
高度なポインタ-ONE

おすすめ

転載: blog.csdn.net/weixin_52199109/article/details/111415765