C言語の*演算子と&演算子の解析と比較

WBOY
リリース: 2024-04-03 14:24:01
オリジナル
509 人が閲覧しました

C 言語では、アスタリスク (*) 演算子はポインター変数を逆参照して、指す変数の値を取得するために使用され、アドレス演算子 (&) は変数アドレスを取得するために使用されます。具体的な比較は次のとおりです。 ポインタの逆参照: *アドレスの取得: & ポインタの乗算: *ビット演算: &

C言語の*演算子と&演算子の解析と比較

* および C での & 演算子の分析と比較言語

C 言語では、アスタリスク (*) 演算子とアドレス演算子 (&) 演算子は 2 つの重要な演算子であり、ポインター操作やメモリ管理によく使用されます。この記事では、それらの用途と違いを詳しく分析し、実際の事例を示して説明します。

アスタリスク (*) 演算子

  • アスタリスク演算子は、ポインター変数を逆参照し、それが指す変数の値を取得するために使用されます。
  • 構文: *ポインター変数
  • 例:

    • int *ptr = &i;
    • printf("%d" , *ptr); // i

アドレス演算子 (&) 演算子

  • アドレス演算の値を出力します。演算子は変数のアドレスを取得するために使用され、変数へのポインターを返します。
  • 構文: &変数名
  • 例:

    • int i = 10;
    • int *ptr = &i;
    • printf("%p", ptr); // iのアドレスを出力します

比較演算子

以下は、さまざまなシナリオでの * 演算子と & 演算子の比較です:

逆参照ポインター変数が指す値を取得します&アドレスの取得変数のアドレスの取得*ポインタの乗算サイズの計算ポインタが指すメモリ空間&ビット演算 (論理 AND)2 つの整数の論理 AND 演算を実行します
Operator Scenario Function

実践的なケース

以下は、* 演算子と & 演算子がポインター操作にどのように使用されるかを示す実践的なケースです:

#include <stdio.h>

int main() {
    int i = 10;
    int *ptr = &i; // ptr指向i

    // 通过解引用指针获取i的值
    printf("i的值:%d\n", *ptr);

    // 通过取地址获取i的地址
    printf("i的地址:%p\n", &i);

    // 通过指针乘法计算ptr指向的内存空间大小
    int size = sizeof(*ptr);
    printf("ptr指向内存空间大小:%d字节\n", size);

    // 使用指针进行递增
    (*ptr)++; 

    // 打印递增后的i值
    printf("递增后的i:%d\n", i);

    return 0;
}
ログイン後にコピー

出力: ###
i的值:10
i的地址:0x7ffe5247ef4c
ptr指向内存空间大小:4字节
递增后的i:11
ログイン後にコピー

以上がC言語の*演算子と&演算子の解析と比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート