恐怕不是去不去掉static的问题。C/C++所使用的变量,必须是在之前(类中的情况有特例)定义。这宗代码的a、b变量在使用之后才定义,就会产生标识符未说明错误。把static int a = 1, b = 2;放在main前面,有没有static都应该没有问题。在main中再定义同名变量a、b也是允许的,这时未加限制使用的a、b是局部a、b面非全局a、b。