下列C语言的写法都是什么意思啊 小弟我在哪本书里都没见过

下列C语言的写法都是什么意思啊 我在哪本书里都没见过。
1
X=400;


main()
{
}

2
main(a)
char   *a;
{
}
在编译器里他们都没有语法错误       但请问这些写法都是啥意思啊     教材上从未见过阿

------解决方案--------------------
1)

的弱类型定义只能是全局变量,局部变量一定要指明类型

而且类型可以变,比如

X=100;
Y= 'c ';
Z= "aaaa ";

main()
{
X = "aa ";
printf( "%s %c %s ", X, Y, Z);
}

其他的记不清:0