目次
アドレスの種類
ポインターの使用
構造体とポインタ
ホームページ バックエンド開発 C#.Net チュートリアル C言語におけるポインタの理解と使用に関する最新のまとめ

C言語におけるポインタの理解と使用に関する最新のまとめ

Jul 26, 2018 pm 06:11 PM
c c# c++ struct

定義: ポインタは、その値が別の変数のアドレスである変数であり、アドレスはメモリ内の位置を表します。覚えておく必要があるのは、配列変数自体がポインターであるということです。

アドレスの種類

アドレスには型があるのですが、不思議だと思いませんか?ポインタがアドレスを表すのではありませんか?アドレスにも型があるのでしょうか?例を見てください:

int    *ip;    /* 一个整型的指针 */

double *dp;    /* 一个 double 型的指针 */

float  *fp;    /* 一个浮点型的指针 */

char   *ch;     /* 一个字符型的指针 */
ログイン後にコピー

実際、ポインタは常にアドレスを表す単なる 16 進数であり、いわゆる型とは、ポインタが指す変数の型を指します。

ポインターの使用

ポインターを定義する方法は前の例から理解し、次にポインターが指す 16 進アドレスまたはデータを出力する方法を理解する必要があります。

//通过&运算符获取了i的地址并保存到intP中去

int *intP; = &i;

printf("intP存储的地址为:%p,存储的地址指向的数据为:%d\n", intP, *intP);
ログイン後にコピー

ポインターは次の操作を実行できます: 、 --、 、 -

さらに、==、<、>

int intArr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//先定义一个指针执行数组第一个元素

int *intArrP = &intArr[0];

printf("此时intArrP存储的地址为:%p,数据为:%d\n", intArrP, *intArrP);

//自增一下看看结果(每增加一次,它都将指向下一个整数位置)

intArrP++;

printf("自增以后intArrP存储的地址为:%p,数据为:%d\n", intArrP, *intArrP);
ログイン後にコピー

ポインターは、関係演算子を使用して比較することもできます。ポインタを指すこともできます

int data = 5201314;

int *p1 = &data;

int **p2 = &p1;

printf("%d\n", data); //都是5201314

printf("%d\n", *p1);

printf("%d\n", **p2);
ログイン後にコピー

構造体とポインタ

構造体でのポインタの使用は、主に構造体自体の特殊性のため、少し特殊です。構造体は、構造体自体と構造体を指すポインタの 2 つの状況に一般的に分けられます。詳細については、次の例を参照してください:

struct Node

{

    int val;
    
};

//先建立一个结构体数据

struct Node node;

node.val = 1;

struct Node *nodeP; //创建一个指向刚刚的结构体的指针

nodeP = &node;

printf("%d\n", nodeP->val);//指向结构体的指针用->

printf("%d\n", node.val);//结构体自身用.
ログイン後にコピー

関連記事:

以上が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)

C# の素数 C# の素数 Sep 03, 2024 pm 03:35 PM

C# の素数ガイド。ここでは、C# における素数の導入と例を、コードの実装とともに説明します。

Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Apr 01, 2025 pm 03:06 PM

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

C文字列におけるcharの役割は何ですか C文字列におけるcharの役割は何ですか Apr 03, 2025 pm 03:15 PM

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C# 面接の質問と回答 C# 面接の質問と回答 Sep 03, 2024 pm 03:35 PM

C# 面接の質問に関するガイド。ここでは、候補者が面接を簡単に突破できるようにする C# 面接の質問トップ 10 について説明しました。

C# デザイン パターンのインタビューでの質問 C# デザイン パターンのインタビューでの質問 Sep 03, 2024 pm 03:35 PM

上記の記事では、C# デザイン パターンの面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように

XML形式を開く方法 XML形式を開く方法 Apr 02, 2025 pm 09:00 PM

ほとんどのテキストエディターを使用して、XMLファイルを開きます。より直感的なツリーディスプレイが必要な場合は、酸素XMLエディターやXMLSPYなどのXMLエディターを使用できます。プログラムでXMLデータを処理する場合、プログラミング言語(Pythonなど)やXMLライブラリ(XML.ETREE.ELEMENTTREEなど)を使用して解析する必要があります。

Advanced C#.NET:並行性、並列性、およびマルチスレッド説明が説明されています Advanced C#.NET:並行性、並列性、およびマルチスレッド説明が説明されています Apr 03, 2025 am 12:01 AM

C#.NETは、同時、並列、およびマルチスレッドプログラミングのための強力なツールを提供します。 1)スレッドクラスを使用してスレッドを作成および管理します。2)タスククラスは、スレッドプールを使用してリソース利用を改善するために、より高度な抽象化を提供します。

See all articles