C言語の配列要素ポインタ

1. 変数にはアドレスがあり、配列には複数の要素が含まれます。各配列要素はメモリ内の記憶単位を占有し、すべてに対応するアドレスがあります。
2. ポインタ変数は変数を指すことができるので、もちろん配列要素を指すこともできます (要素のアドレスをポインタ変数に入れる)。
3.いわゆる配列要素のポインタは、配列要素のアドレスです。
ポインター変数を使用して配列要素を指すことができます。例えば:

int a[10]={
    
    1,2,3,4,5,6,7,8,9,10};//定义a为包含10个整型数据的数组
int *p;//定义p为指向整型变量的指针变量
p=&a[0];//把a[0]元素的地址赋给指针变量p

上記のコードは、ポインター変数 p が配列の 0 番目の要素を指すようにするものです。
4. 配列要素の参照方法:
(1) などの添え字方式a[5]
(2) ポインタ方式。配列要素へのポインタを介して目的の要素を検索します。ポインタ方式を使用すると、ターゲット プログラムの品質を高くすることができます (メモリ占有量が少なく、実行速度が速くなります)。
5. C 言語では、配列名(仮パラメータを除いた配列名)は、配列の先頭要素のアドレス(通し番号が 0 の要素のアドレス)を表します。したがって、次の 2 つのステートメントは同等です。

p=&a[0];//p的值使a[0]的地址
p=a;//p的值是数组a首元素(即a[0])的地址

[注意]
プログラムにおいて、配列名は配列全体を表すものではなく、配列の最初の要素のアドレスのみを表します。上記のコードの機能は、配列 aの各要素の値を p に割り当てるのではなく、配列a の最初の要素のアドレスをポインタ変数 p に割り当てることですp=a;6. ポインタ変数は定義時に初期化できます。のように:

int *p=&a[0];

これは次の 2 行と同等です。

int *p;
p=&a[0];

もちろん、次のように書くこともできます。

int *p=a;

その機能は、配列 a の最初の要素 (つまり、a[0]) のアドレスをポインター変数 p (*p の代わりに) に割り当てることです。

おすすめ

転載: blog.csdn.net/NuYoaH502329/article/details/128996609#comments_25179279