ホームページ  >  記事  >  バックエンド開発  >  C言語の*と&の違い

C言語の*と&の違い

下次还敢
下次还敢オリジナル
2024-04-27 22:51:15545ブラウズ

C 言語では、間接的なアドレス指定と値には (アスタリスク) が使用され、アドレスと参照には & (アドレス文字) が使用されます。変数またはポインタが指す値を取得し、値を変更してポインタ変数を宣言するために使用します。 & 変数アドレスを取得し、アドレスをポインタ変数に割り当て、そのアドレスを関数パラメータとして渡すために使用します。

C言語の*と&の違い

#C 言語における * と & の違い

記号 * と & は、C 言語における異なる演算です。さまざまな目的で使用される記号:

意味:

  • アスタリスク *: は、間接的なアドレッシングまたはポインター値の演算記号を示します。
  • アドレス文字 &: はアドレスまたは参照演算子を表します。

目的:

アスタリスク*:

    変数、または が指す変数を取得します。ポインタの値。
  • 変数の値、またはポインターが指す変数の値を変更します。
  • ポインター変数の宣言の一部として。

アドレス記号&:

    変数のアドレス(メモリ位置)を取得します。
  • 変数のアドレスをポインタ変数に代入します。
  • 変数のアドレスを関数パラメータとして渡します。

例:

int main() {
    int x = 10;
    int *ptr = &x;  // ptr指向x的地址

    // 获取x的值
    printf("x = %d\n", x);

    // 使用指针获取x的值
    printf("*ptr = %d\n", *ptr);

    // 使用指针修改x的值
    *ptr = 20;
    printf("x = %d\n", x);  // x的值已经改变为20

    return 0;
}

注:

    *ptr は、ポインタ変数 ptr の値、&x は変数 x のアドレスを表します。
  • 通常、ポインタ変数は「変数タイプ*」タイプの変数で、特定のタイプの変数を指します。
  • アドレス取得演算子と間接アドレス指定演算子を組み合わせて使用​​すると、ポインター演算やその他の高度なデータ構造を実装できます。

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

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