Wenn Sie nicht explizit initialisieren, ob der Anfangswert automatisch eingegeben wird oder der unbestimmte Wert noch eingegeben wird, wird eine Zusammenfassung der Unterschiede in Abhängigkeit von der Sprache und dem Deklarationsort angezeigt.
Java#
Der Standardwert wird automatisch in die Instanzvariable eingegeben.
public class Sample{
int x; //Instanzvariable
void show(){
int tmp; //Lokale Variablen
System.out.println("x = " + x);
}
}
Variablentyp | Standardwert |
---|---|
int , short , byte , long | 0 |
float , double | 0.0 |
char | '\u0000' |
boolean | false |
Objektreferenz | null |
Selbst im Fall eines Arrays haben alle Elemente Standardwerte.
Lokale Variablen werden nicht automatisch initialisiert. Wenn Sie es nicht explizit selbst initialisieren, wird ein Kompilierungsfehler angezeigt.
Selbst wenn es sich um eine lokale Variable handelt, wird nur das ** Array automatisch initialisiert **.
Referenzseite http://www.booran.com/menu/java/format.html
C/C++#
Globale Variablen werden mit Standardwerten initialisiert.
#include <stdio.h>
int g_hoge; //Globale Variablen
int main(){
int a; //Lokale Variablen
return 0;
}
Variablentyp | Standardwert |
---|---|
int , short , long | 0 |
float , double | 0.0 |
char | '\0' |
bool | false |
Objektreferenz | NULL |
Selbst im Fall eines Arrays haben alle Elemente Standardwerte.
Lokale Variablen werden nicht automatisch initialisiert.
Im Gegensatz zu Java wird das Array lokaler Variablen auch nicht initialisiert.
Für Variablen mit "statisch" werden sogar lokale Variablen initialisiert.
Referenzseite http://edu.clipper.co.jp/pg-2-33.html
Ich bin mir bei Klassen- und Strukturvariablen nicht sicher, da sich ihr Verhalten abhängig vom Deklarationsspeicherort und der Erstellung einer Instanz ändert.
Obwohl es sich selbst initialisiert, ist es besser, es explizit selbst in Programmen zu initialisieren, die andere sehen.
Recommended Posts