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

グローバル変数の再宣言へのCプログラム


初期化せずにグローバル変数を再宣言し、初期化でグローバル変数を再宣言し、グローバル変数を再宣言し、それらを2回初期化した場合、CとC++の動作がどのように異なるかを理解します。また、ローカル変数を使用して上記の組み合わせを繰り返します。

1。 A)Cプログラム:初期化なしでグローバル変数を再宣言する

#include <stdio.h>
int var;
int var;
int main(){
   printf("Var = %d",var);
   return 0;
}

出力

Var = 0

B)C ++プログラム:初期化なしでグローバル変数を再宣言する

#include <iostream>
using namespace std;
int var;
int var;
int main(){
   cout<<"Var = "<<var;
   return 0;
}

出力

Compilation Error: int var;
main.cpp:3:5: note: ‘int var’ previously declared here

結果 :-Cを使用すると、初期化せずにグローバル変数を再宣言できます。値は0のままです。C++では、変数が再宣言されたというコンパイルエラーが発生します。

2。 A)Cプログラム:初期化なしでローカル変数を再宣言する

#include <stdio.h>
#include <stdio.h>
int main(){
   int var;
   int var;
   printf("Var = %d",var);
   return 0;
}

出力

error: redeclaration of ‘var’ with no linkage

B)C ++プログラム:初期化なしでローカル変数を再宣言する

#include <iostream>
using namespace std;
int main(){
   int var;
   int var;
   cout<<"Var = "<<var;
   return 0;
}

出力

error: redeclaration of ‘int var’

結果 :-CとC ++はどちらも、初期化が行われていないローカル変数の再宣言を許可していません。両方のプログラムがコンパイルに失敗しました。

3。 A)Cプログラム:初期化によるグローバル変数の再宣言

#include <stdio.h>
int main(){
   int var;
   int var=10;
   printf("Var = %d",var);
   return 0;
}

出力

Var = 10

B)C ++プログラム:初期化によるグローバル変数の再宣言

#include <iostream>
using namespace std;
int var;
int var=10;
int main(){
   cout<<"Var = "<<var;
   return 0;
}

出力

main.cpp:7:9: error: redeclaration of ‘int var’
int var;

結果 :-Cは、初期化されていない場合、グローバル変数の再宣言を許可します。コンパイル中にC++プログラムが失敗します。

4。 A)Cプログラム:初期化によるグローバル変数の再宣言

#include <stdio.h>
int var;
int var=10;
int main(){
   printf("Var = %d",var);
   return 0;
}

出力

error: redeclaration of ‘var’ with no linkage

B)C ++プログラム:初期化によるローカル変数の再宣言

#include <iostream>
using namespace std;
int main(){
   int var;
   int var=10;
   cout<<"Var = "<<var;
   return 0;
}

出力

error: redeclaration of ‘int var
の再宣言

結果 :-CとC ++はどちらも、初期化されていない場合でもローカル変数の再宣言を許可しません。両方のプログラムがコンパイルに失敗しました


  1. プラス完全数をチェックするCプログラム

    n桁の数xが与えられた場合、私たちのタスクは、与えられた数のプラス完全数かどうかを確認することです。数値がプラス完全数であることを確認するために、すべての桁のn乗d(d ^ n)を見つけて、すべての桁を合計します。合計がnに等しい場合、その数値はプラス完全数です。プラス完全数は、任意の数のアームストロングを見つけるのと似ています。 以下の例のように- 例 Input: 163 Output: Number is not a perfect_number Explanation: 1^3 + 6^3 + 3^3 is not equal to 163 Input: 371 Output:

  2. アームストロング数のためのCプログラム

    アームストロングかどうかに関係なく、ユーザーが入力した数字nを確認する必要があるタスクが与えられます。 アームストロング数は、すべての桁の合計が桁数で累乗される場合、または桁の順序nと言うことができる場合、桁と同じです。 以下は、アームストロング数を見つける方法の簡単な表現です- 数式- wxyz…. = pow(w, n) +pow(x, n) + pow(y, n) + pow(z, n) + ….. アルゴリズム START Step 1-> Declare a function to find the value after power o