c++2.变量声明和定义
大约 2 分钟
概念
在C++中,变量声明和定义:
变量声明(Variable Declaration): 变量声明是指通知编译器变量的存在,但不进行实际的分配。例如:
extern int x; //这是一个变量声明:(通过使用extern关键字,可以声明变量名而不定义它)
需要注意的是extern 不能在main函数中,且需要在外部赋值才能在main函数中修改。
变量定义(Variable Definition): 变量定义是指在程序中为变量分配实际的内存空间,同时也可以对其进行初始化。变量定义包含了变量的声明。例如:
int x = 42; // 这是一个变量定义
int y{};//变量定义,{}默认是0
int c = {42};//也是一个变量定义
在上述代码中:
int x
是变量声明和定义的组合,它告诉编译器分配一个整数类型的内存空间给变量x
,并将其初始化为 42。int y
使用了{}初始化了y
,默认不赋值是0,是现代C++的写法,后续章节中就有描述。int c
也使了{}初始化,并且赋值42。
总结
为变量分配地址和存储空间的称为定义,不分配地址的称为声明。
易混淆
int a = 1;
int a();
int b(a);
int a = 1;
: 这是一个整数变量声明,将变量a初始化为1。int a();
: 这是一个函数声明,而不是变量声明。它声明了一个返回整数的函数a,但没有提供函数体。这被称为函数原型。int b(a);
: 这是一个函数声明,其中参数b是一个整数,而参数a是一个函数。这是因为在C++中,函数名可以被视为指向函数的指针。因此,这里的b函数的参数是一个函数。