ホームページ バックエンド開発 C#.Net チュートリアル 配列ポインタの用途は何ですか?

配列ポインタの用途は何ですか?

Jun 11, 2020 pm 04:20 PM
配列ポインタ

配列ポインタの用途は何ですか?

int *a[4]; //指针数组
ログイン後にコピー

ポインター配列は、複数のポインターを一度に宣言することと同じです。配列の各要素はポインタです。わかりやすいので、主に配列ポインタを見てみましょう

int (*p)[4]; //数组指针
ログイン後にコピー

配列ポインタは、一度に 1 つのポインタを宣言するのと同じです。このポインタが非常に特殊な配列を指しているだけです。

[] は * よりも優先度が高いため、配列ポインターを宣言するときに () を追加する必要があります。

例 1:

#include<stdio.h>#include<stdlib.h>void main()
{    //数组指针的用法,用处。
    int b[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};    int (*p)[4]; //该语句是定义一个数组指针,指针步长为4个int即16位。    //int *p2=&b;
    p=&b;    int i=0;    while(i<16)
    {
          printf("%d\t",(*p)[i]);          //printf("%d\t",*p2++);
          i++;
    }
}
ログイン後にコピー

printf("%d\t",(*p)[i]);出力配列 b を走査します;
配列ポインターは次のとおりです。キング オブ ダンス ゾンビと同じで、弟がいます。n は弟の数です。添え字の値を通じて、特定の弟、つまり配列内の番号に直接アクセスできます。

配列ポインタの添字は自動的に増加し (i)、ポインタのポイントは変更されません。

これは整数ポインターを使用して直接実装でき、より便利で簡潔です。上記のコメントセクションを参照してください。

例 2: 例 1 の while() ステートメントを置き換えます。

  while(i<4)
    {
          printf("%d\t",(*p++)[0]);
          i++;
    }
ログイン後にコピー

例 2 は 1 5 9 13 を出力します。これは、ポインターが一度に 4 int.16 バイト移動するのと同等です。

配列ポインタがインクリメントされると (*p)、ポインタは移動 sizeof (type) を指します。

実際、上記の文は他の種類のポインタにも当てはまります。

int *p;

など //ポインタは整数ポインタである int を指します。整数ポインタの特徴は何ですか?整数変数を保存できるアドレスです。使用は何ですか?つまり、p は次の int 型の数値を指すことができます。では? 多くの場合、ポインタは配列を指すために使用されます。これらはすべて int 型なので、ステップ サイズが導出されます。整数ポインターのステップ サイズは sizeof(int) で、4 バイトです。

//同様に、float ポインター、char ポインターなどを取得できます。 。 。

同様に配列ポインタも取得できますが、その特徴は何でしょうか?配列の最初のアドレスを保存します。使用? p は次の配列を指すことができます。それで? 2 次元配列を指すために使用します。 2 次元配列の各要素は同じ型 (すべて int 配列) であるため、ステップ サイズを推定できますか? sizeof(int[4])、つまり 16

//率直に言うと、これは配列型

例 3:配列ポインタは 2 次元配列を指します。

#include<stdio.h>#include<stdlib.h>void main()
{    int a[3][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24}};    int (*p)[4]; //该语句是定义一个数组指针,指针步长为4个int即16位。
    p=&a;    int i=0;    while(i<3)
    {        //printf("%d\t",(*p)[i]);        //数组指针,指向的是一个数组整体,相当于指针也带了下标,当执行i++操作时,下标+1,得到该数组的下一个元素,        //在该例中,指针没有位移,所以依次输出为1 2 3
        printf("%d\t",(*p++)[0]);        //整型数组类型的指针,指向的是一个数组整体,当执行*p++操作时,指针位移该数组长度的位数        //在该例中,即指针位移4个int的长度,所以输出是1 11 21
        i++;
    }
}
ログイン後にコピー

推奨チュートリアル: 「C ビデオ チュートリアル

以上が配列ポインタの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPの配列ポインタの用途は何ですか? PHPの配列ポインタの用途は何ですか? Dec 28, 2022 pm 07:23 PM

PHP の配列ポインタは配列の操作に使用されます。配列ポインタは、配列の内部構成メカニズムです。各配列には、その「現在の」ユニット (要素) を指す内部ポインタがあります。このポインタは、配列ポインタの位置を移動または変更することによって、最初は現在の配列の最初のユニットを指します。を使用すると、配列内の任意の要素にアクセスできます。 PHP には、配列ポインターを制御するための複数の組み込み関数が用意されています: current()、pos()、key()、next()、prev()、end()、reset()。

PHPのnext関数を使って配列ポインタを次の要素に移動する方法 PHPのnext関数を使って配列ポインタを次の要素に移動する方法 Jun 26, 2023 pm 03:55 PM

PHPはWeb開発で広く使われているサーバーサイドスクリプト言語で、その構文はC言語に似ており、便利な関数やライブラリも数多く提供されています。 PHP では、next() 関数は、配列ポインターを次の要素に移動するためによく使用される関数です。 1. 配列ポインタとは何ですか? PHP では、配列は、多数の順序付けされたデータを格納できる非常に便利なデータ構造です。配列内の各要素には対応する添字があり、要素の値にアクセスして変更するために使用できます。添字を使用して配列要素にアクセスするだけでなく、

Golang 関数ポインタ配列と配列ポインタの応用スキル Golang 関数ポインタ配列と配列ポインタの応用スキル May 16, 2023 pm 04:00 PM

Golang 言語の継続的な開発により、関数ポインター配列と配列ポインターも Golang プログラミングの重要な部分になりました。この記事では、Golang 関数におけるポインター配列と配列ポインターの応用スキルについて説明し、いくつかの実用的なサンプル コードと関連する説明を提供します。 Golang ポインタ配列の基本概念 まず、Golang ポインタ配列について理解しましょう。ポインターの配列は、さまざまな変数またはオブジェクトへのポインターの配列であるデータ型です。

配列ポインタとポインタの配列の違いは何ですか 配列ポインタとポインタの配列の違いは何ですか Sep 22, 2023 am 09:51 AM

配列ポインタとポインタ配列の違いは次のとおりです: 1. 配列ポインタはポインタですが、格納されたポインタ配列は配列です; 2. 配列ポインタは int *p = arr; として宣言されますが、ポインタ配列は int * として宣言されます。 arr[ 5];; 3. 配列ポインターは p[i] の形式で配列内の要素にアクセスできますが、ポインター配列は arr[i] の形式で配列内の要素にアクセスする必要があります。

PHP のリセット関数を使用して配列ポインタを配列の先頭に戻す方法 PHP のリセット関数を使用して配列ポインタを配列の先頭に戻す方法 Jun 26, 2023 pm 12:45 PM

PHP では、reset 関数を使用して、配列ポインターを配列の先頭に戻すことができます。リセット関数を使用する前に、配列ポインターの概念を理解しておく必要があります。配列ポインタは、現在操作されている配列要素を指す内部ポインタです。 PHP では、foreach ループを使用して配列を走査したり、while ループと配列ポインターを使用して配列を走査したりできます。ただし、while ループと配列ポインタを使用して配列を走査する場合は、reset 関数を使用して配列ポインタを配列の先頭に戻す必要があります。リセットを使用する

ポインタ配列と配列ポインタの違いは何ですか ポインタ配列と配列ポインタの違いは何ですか Jan 06, 2023 pm 04:50 PM

違い: ポインタ配列の場合、まず第一に、それは配列であり、配列の要素はすべてポインタです。つまり、配列はポインタを格納します。配列によって占有されるバイト数は、配列自体によって決まります。配列ポインタ、まず これはポインタです、配列を指します、つまり配列へのポインタで、32ビットシステムでは常に4バイトを占めます。を占めていますが、これは特定できず、特定の状況によって異なります。

ポインタ配列と配列ポインタの違いは何ですか ポインタ配列と配列ポインタの違いは何ですか Sep 04, 2023 pm 03:45 PM

ポインタ配列と配列ポインタは 2 つの異なるタイプの概念であり、定義と使用法が異なります。 1. ポインタ配列は配列であり、その各要素はポインタ型ですが、配列ポインタはポインタであり、ポインタを指します。配列のアドレス; 2. ポインタ配列の宣言方法は「type *array[]」、配列ポインタの宣言方法は「type (*ptr)[size]」です。

配列ポインタと配列参照の違いは何ですか? 配列ポインタと配列参照の違いは何ですか? Jun 04, 2024 am 10:01 AM

配列ポインタと配列参照には次のような違いがあります。 逆参照が必要: 配列ポインタは逆参照する必要がありますが、配列参照は必要ありません。ポインター演算: 配列ポインターはポインター演算をサポートしますが、配列参照はサポートしません。アドレス: 配列ポインタには配列の最初の要素のアドレスが格納されますが、配列参照はアドレスではありません。定数 kval: 配列ポインターは constkval を指すことができますが、配列参照は指すことができません。配列サイズ: 配列ポインタは配列サイズを格納しませんが、配列参照には暗黙的に配列サイズが含まれます。

See all articles