C++自学第二天----C++变量的定义和声明的区别
C++变量的定义和声明的区别
1、 Hello World!
#include <iostream>
using namespace std;
// main() 是程序开始执行的地方
int main()
{
cout << "Hello World"; // 输出 Hello World
return 0;
}
第一行:头文件 。C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息
下一行 using namespace std; 告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。
下一行 // main() 是程序开始执行的地方 是一个单行注释。单行注释以 // 开头,在行末结束。
下一行 int main() 是主函数,程序从这里开始执行。
下一行 cout << “Hello World”; 会在屏幕上显示消息 “Hello World”。
下一行 return 0; 终止 main( )函数,并向调用进程返回值 0。
2、变量的定义和声明
2.1、变量的定义
变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。*(需要建立存储空间)*变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表。
2.2、变量的声明
C/C++ 编译 cpp 文件是从上往下编译,所以 main 函数里面调用其他函数时,如果其他函数在 main 函数的下面,则要在 main 函数上面先声明这个函数。
或者把 main 函数放在要调用函数下面,这个不仅限于 main 函数,其他函数的调用都是如此。被调用的函数要在调用的函数之前声明。
我们声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以(声明不会分配存储空间),只有定义时才会分配存储空间。
通过上面的两段代码,两个运行结果,我们发现,
如果我们调用一个函数时,这个函数定义在代码中的位置处于我们调用位置前面,那么成功
这个函数定义在代码中的位置处于我们调用位置后面,那么失败
如果我们既想要调用处于调用位置后的函数,那我们只能在调用位置进行变量的声明了。
所谓的“声明”,其作用,是声明该变量是一个已在后面定义过的外部变量,仅仅是为了“提前”引用该变量而作的“声明”而已。
细心一点的同学肯定疑问楼主为什么没有用extern关键字
其实函数用不用extern来声明都是可以的,我们可以用 extern int func();或者 int func();来表示声明,但是只要有花括号就是定义 extern int func(){};(和 int func(){} 作用一样)
成功运行的:
3、关于声明和定义需要注意的
1、定义也是声明,但extern声明不一是定义(被包含和包含的关系),即不分配存储空间。extern告诉编译器变量在其他地方定义了。
例如:extern int i; //声明,不是定义
int i; //声明,也是定义
2.如果声明有初始化式,就被当作定义,即使前面加了extern。只有当extern声明位于函数外部时,才可以被初始化。
例如:extern double pi=3.1416; //定义
3.函数:函数的声明和定义区别比较简单,带有{ }的就是定义,否则就是声明。
例如:extern double max(double d1,double d2); //声明
4.变量:除非有extern关键字,否则都是变量的定义,(因为变量没有像函数一样的花括号)
例如:extern int i; //声明
int i; //定义
看了第一个参考文献作者的许多博客,他写的都是C++的,应该是硕士学长或者博士,写的很深,很详细,如果大家想要深入学习一下,就去博客园关注他吧
博客园 fenghuan C++ 变量的声明与定义的区别
博客园 wenbuhau C++中的声明和定义