C/C++static变量声明类型的问题

C/C++static变量声明类型的问题

问题描述:

#include <iostream.h>

using namespace sd;
int main(){
    static b = 4;
    printf("%d\n", b);
    return 0;
}

为什么静态变量中没有为其指明类型,但在C中都能编译通过并打印b的值。在C++中却不行?为什么在C中,不对静态变量进行声明就能使用这个值呢?

C 语言的默认规则,所有不声明类型的地方都默认是int 类型。例如 functionA(); 实际返回类型是int,不是void哦。

好像不写类型默认是int