C /C++でのユニオンの目的
ユニオンは構造に似ています。共用体変数は、構造体変数と同じ方法で作成されます。キーワード「union」は、C言語で共用体を定義するために使用されます。
これがC言語のユニオンの構文です
union union_name { member definition; } union_variables;
ここで
-
union_name −組合に付けられた任意の名前。
-
メンバーの定義 −メンバー変数のセット。
-
union_variable −これはユニオンの対象です。
これがC言語のユニオンの例です
例
#include <stdio.h> #include <string.h> union Data { int i; float f; } data, data1; int main( ) { printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1)); return 0; }
出力
これが出力です
Memory size occupied by data : 4 4
-
C / C ++での引数の強制?
ここでは、CまたはC++での引数の強制について説明します。引数強制は、コンパイラーが引数をあるタイプから別のタイプに暗黙的に変換できる1つの手法です。引数プロモーションルールに従います。 1つの引数が下位データ型の場合、上位データ型に変換できますが、その逆は当てはまりません。その理由は、1つの上位データ型が下位データ型に変換されると、一部のデータが失われる可能性があるためです。 暗黙の変換がどのように行われるかを表現できるピラミッドを1つ見てみましょう。 例 #include<iostream> using namespace std; double myAdd(doubl
-
C++での二分木の簡潔なエンコーディング
二分木があるとします。私たちが知っているように、バイナリツリーの簡潔なエンコーディングは可能な限り低いスペースに近いパフォーマンスを発揮します。 n番目のカタラン数は、n個の異なるノードを持つ構造的に異なる二分木の数によって指定されます。 nが大きい場合、これは約4nです。したがって、それをエンコードするには、log2(4)n=2nビット程度の最小値が必要です。したがって、簡潔な二分木は2n + O(n)ビットを消費します。 したがって、入力が次のような場合 その場合、出力は次のようになります エンコードされた- 構造リスト111 0 0 1 0 0 1 0 1 0 0 デー