Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

CとC++で異なる結果を生成するプログラムを作成します


ここでは、CまたはC++コンパイラでコンパイルされた場合に異なる結果を返すプログラムをいくつか紹介します。そのようなプログラムはたくさんありますが、ここではそれらのいくつかについて説明しています。

CおよびC++では、文字リテラルは異なる方法で扱われます。 Cではintとして扱われますが、C++では文字として扱われます。したがって、sizeof()演算子を使用してサイズを確認すると、Cでは4、C++では1が返されます。

Cの場合。

#include<stdio.h>
int main() {
   printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

出力(C)

The character: a, size(4)

Cの場合。

#include<stdio.h>
int main() {
   printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

出力(C ++)

The character: a, size(1)

Cでstructを使用する場合、typedefが使用されるまで、structタグを使用するときにstructタグを使用する必要があります。ただし、C ++では、構造体を使用するためにタグを構造化する必要はありません。

Cの場合。

#include<stdio.h>
struct MyStruct {
   int x;
   char y;
};
int main() {
   struct MyStruct st; //struct tag is present
   st.x = 10;
   st.y = 'd';
   printf("Struct (%d|%c)", st.x, st.y);
}

出力(C)

Struct (10|d)

C++の場合。

#include<stdio.h>
struct MyStruct{
   int x;
   char y;
};
int main() {
   MyStruct st; //struct tag is not present
   st.x = 10;
   st.y = 'd';
   printf("Struct (%d|%c)", st.x, st.y);
}

出力(C ++)

Struct (10|d)

ブール型データのサイズは、CとC++で異なります。

Cの場合。

#include<stdio.h>
int main() {
   printf("Bool size: %d", sizeof(1 == 1));
}

出力(C)

Bool size: 4

C++の場合。

#include<stdio.h>
int main() {
   printf("Bool size: %d", sizeof(1 == 1));
}

出力(C ++)

Bool size: 1

  1. ツリーのサイズを計算するプログラムを作成する-C++での再帰

    この問題では、ツリーが与えられ、再帰を使用してツリーのサイズを計算するプログラムを作成することがタスクです。 ツリーのサイズは、ツリーに存在するノードの総数です。 問題を理解するために例を見てみましょう 上記の木のサイズは5です。 ツリーのサイズを見つけるには、左のサブツリーと右のサブツリーのサイズを追加してから、1ずつインクリメントする必要があります。再帰関数は、ツリーの左と右の両方のサブツリーに対して呼び出されます。また、サブツリーが見つからない場合は0を返します。 この方法を使用して解決された上記の例 木のサイズを見つけるには、 size(3)=size(5)+

  2. GCDとLCMを見つけるためのC#プログラムを作成しますか?

    GCD(最大公約数) GCDは、各整数を分割する最大の正の整数です。 LCM(最小公倍数) 2つの数値のLCMは、両方の数値で割り切れる最小の整数です。 以下は、GCDとLCMを計算する例です。ここでは、10と16のLCMとGCDを計算しています- 例 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Demo {    class Program {       static void Mai