ホームページ  >  記事  >  バックエンド開発  >  C言語で共用体ポインタを説明する

C言語で共用体ポインタを説明する

王林
王林転載
2023-09-12 13:45:04619ブラウズ

C言語で共用体ポインタを説明する

#ユニオンは、異なるデータ型の複数の変数によって共有されるメモリ位置です。

構文

C プログラミングにおける共用体へのポインタの構文は次のとおりです。 -

union uniontag{
   datatype member 1;
   datatype member 2;
   ----
   ----
   datatype member n;
};

次の例は、構造体の共用体の使用法を示しています。 。

union sample{
   int a;
   float b;
   char c;
};

ジョイント変数の宣言

以下はジョイント変数の宣言です。次の 3 つのタイプがあります。 -

タイプ 1

union sample{
   int a;
   float b;
   char c;
}s;

タイプ 2

の翻訳は次のとおりです。

タイプ 2

union{
   int a;
   float b;
   char c;
}s;

タイプ 3

翻訳は次のようになります。

Type 3

union sample{
   int a;
   float b;
   char c;
};
union sample s;

  • 共用体を宣言すると、コンパイラは共用体の変数を収容できる最大サイズの変数型を自動的に作成します。

  • 一度に参照できる変数は 1 つだけです。

  • 同じ構造体構文を使用して共用体メンバーにアクセスします。

  • ドット演算子はメンバーにアクセスするために使用されます。

  • 矢印演算子 (->) は、ポインターを使用してメンバーにアクセスするために使用されます。

構造体と同様に、共用体へのポインタを使用し、矢印演算子 (->) を使用してメンバーにアクセスできます。

次のプログラムは、C プログラミングにおける共用体へのポインターの使用法を示しています。 -

ライブ デモ

#include <stdio.h>
union pointer {
   int num;
   char a;
};
int main(){
   union pointer p1;
   p1.num = 75;
   // p2 is a pointer to union p1
   union pointer* p2 = &p1;
   // Accessing union members using pointer
   printf("%d %c", p2->num, p2->a);
   return 0;
}

出力

When上記のプログラムを実行すると、次の結果が生成されます。 -

75 K

例 2

同じ例を異なる入力で考えてみましょう。

リアルタイム デモンストレーション

#include <stdio.h>
union pointer {
   int num;
   char a;
};
int main(){
   union pointer p1;
   p1.num = 90;
   // p2 is a pointer to union p1
   union pointer* p2 = &p1;
   // Accessing union members using pointer
   printf("%d %c", p2->num, p2->a);
   return 0;
}

出力

上記のプログラムを実行すると、次の結果が生成されます -

90 Z

以上がC言語で共用体ポインタを説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。