Провёл очень интересный эксперимент, взял два языка программирование С и Java и написал простенькие программы:
С:
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a;
char b;
bool c;
float d;
printf("%d \n",a);
printf("%c \n",b);
if (c==true)
{
printf(«bool=true\n»);
}
else
{
printf(«bool=false\n»);
}
printf("%l \n",d);
return 0;
}
Java:
public class Main {
public static void main(String[] args) {
boolean a;
int b;
char c;
float d;
System.out.println(a);
System.out.println(b);
System.out.println©;
System.out.println(d);
}
}
Суть этих программ, проверить, что будет показывать, если я не инициализирую переменные. Старый добрый С разочаровал, он начал показывать разную гадость. Интересно, что по умолчание в булевском типе переменная с была обьявлена как true. А тип float вообще не вывел… Что ж показала Java? Ошибки! Она требовала, чтобы мы инициализировали переменные.
Мораль это басни такова: инициализируйте переменные :)
p.s.
C — Microsoft Visual C++ 2008 Express Edition
Java — NetBeans IDE 6.1
С:
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
int a;
char b;
bool c;
float d;
printf("%d \n",a);
printf("%c \n",b);
if (c==true)
{
printf(«bool=true\n»);
}
else
{
printf(«bool=false\n»);
}
printf("%l \n",d);
return 0;
}
Java:
public class Main {
public static void main(String[] args) {
boolean a;
int b;
char c;
float d;
System.out.println(a);
System.out.println(b);
System.out.println©;
System.out.println(d);
}
}
Суть этих программ, проверить, что будет показывать, если я не инициализирую переменные. Старый добрый С разочаровал, он начал показывать разную гадость. Интересно, что по умолчание в булевском типе переменная с была обьявлена как true. А тип float вообще не вывел… Что ж показала Java? Ошибки! Она требовала, чтобы мы инициализировали переменные.
Мораль это басни такова: инициализируйте переменные :)
p.s.
C — Microsoft Visual C++ 2008 Express Edition
Java — NetBeans IDE 6.1