变量定义类型
类型 | 含义 |
bool | 存储值为true或false |
char | 通常为单个八位字节(一个字节)。这是一个整数类型 |
int | 机器最自然的整数大小 |
float | 单精度浮点值 |
double | 双精度浮点值 |
void | 表示类型缺失 |
wchar_t | 广泛的字符类型。 |
long long | 是64位有符号长整型类型 |
C++中的变量定义
变量定义告诉编译器为变量创建的存储位置和容量。变量定义指定数据类型,并包含该类型的一个或多个变量的列表,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 type variable_list;
此处,类型必须是有效的 C++ 数据类型,包括字符、w_char、int、float、double、bool 或任何用户定义的对象等,并且variable_list可以包含一个或多个用逗号分隔的标识符名称。此处显示了一些有效的声明
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 int i, j, k; 2 char c, ch; 3 float f, salary; 4 double d;
在这一行int i, j, k;声明和定义变量 i、j 和 k;指示编译器创建名为 int 类型的 i、j 和 k 的变量。
可以在变量的声明中初始化变量(分配初始值)。初始化程序由等号后跟一个常量表达式组成,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 type variable_name = value;
这是一个例子
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 extern int d = 3, f = 5; //对d和f的声明 2 int d = 3, f = 5; //对d和f的类型数值的初始化,d=3,f=5 3 byte z = 22; //对z的类型定义的初始化,使z=22个字节 4 char x = 'x'; //对z的类型定义的初始化,使x=x的ASCII码值58
对于没有初始化程序的定义:具有静态存储持续时间的变量用 NULL 隐式初始化(所有返回值为 0);所有其他变量的初始值未定义
C ++中的变量声明
变量声明为编译器提供了保证,即存在一个具有给定类型和名称的变量,以便编译器继续进行进一步编译,而无需完整的变量详细信息。变量声明仅在编译时有意义,编译器在链接程序时需要实际的变量定义。
当您使用多个文件并在链接程序时可用的其中一个文件中定义变量时,变量声明很有用。您将使用extern关键字在任何地方声明变量。虽然您可以在C ++程序中多次声明变量,但它只能在文件,函数或代码块中定义一次。
尝试以下示例,其中变量已在顶部声明,但已在主函数内定义
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 #include <iostream> 2 using namespace std; 3 4 //变量声明: 5 extern int a, b; 6 extern int c; 7 extern float f; 8 9 int main () { 10 // 变量声明: 11 int a, b; 12 int c; 13 float f; 14 15 // 真正的定义 16 a = 10; 17 b = 20; 18 c = a + b; 19 20 cout << c << endl ; 21 22 f = 70.0/3.0; 23 cout << f << endl ; 24 25 return 0; 26 }
编译并执行上述代码时,会产生以下结果
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 30 2 23.3333
相同的概念适用于函数声明,其中您在声明时提供函数名称,并且可以在其他任何位置给出其实际定义。例如
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 // 变量声明 2 int func(); 3 int main() { 4 // function call 5 int i = func(); 6 } 7 8 // 函数定义 9 int func() { 10 return 0; 11 }
For English vistors, please click here