出力が-28762.Whyになっていますが、それは0(ゼロ)ではありません。これは整数のデフォルト値ですか?ターボCのデフォルト値
#include<stdio.h>
#include<conio.h>
void main(){
int a;
clrscr();
printf("%d",a);
getch();
}
出力が-28762.Whyになっていますが、それは0(ゼロ)ではありません。これは整数のデフォルト値ですか?ターボCのデフォルト値
#include<stdio.h>
#include<conio.h>
void main(){
int a;
clrscr();
printf("%d",a);
getch();
}
変数を初期化していない間も、変数はメモリ内の位置を参照します。
この場所の値は整数に変換何かをもたらすであろう、そしてあなたのケースでは-28762
だあなたはint型のような任意の単純なデータ型を宣言するときなどフロートこれが起こることに注意してください。
ユーザー定義の型や構造のような複雑な型の場合、これは起こりません。
整数変数は、ファイルスコープまたは静的でない限り、デフォルトではゼロではありません。 は、zの宣言が初期化されていない静的変数のためだったか、ファイルスコープであった場合、それは0の初期値を受信すると、その値は変更不可能となり、基準リンクhttps://msdn.microsoft.com/en-us/library/y2xtdbay.aspx
を参照してください。
です-28762 ..メモリ内の場所.. ????? – Nitesh
intを宣言しても、2バイトのメモリ位置が割り当てられます。その場所に何かが格納されている可能性があります – DhruvJoshi
この場合、...整数のデフォルト値、すなわち '0'が 'a'に割り当てられます.. ???????? – Nitesh
未定義の動作は未定義の動作です。 'a'をある値に初期化する必要があります。 –
TurboCは使用しないでください。 C(またはC++、TurboC++)の廃止された変種を実装しています。最近の標準準拠のコンパイラ(例えば[GCC](http://gcc.gnu.org/)や[Clang](http://clang.llvm.org/)...)を使用し、すべての警告とデバッグ情報を有効にする例えば 'gcc -Wall -Wextra -g'でコンパイルしてください。これはあなたに警告していました)。プログラムが間違っていることに注意してください( 'main'は' void'関数として宣言してはいけません)。 –