C语言声明变量与定义变量的区别

一、变量声明

1、声明告诉编译器变量的存在及其类型,不分配存储空间。

2、它主要用于向编译器引入一个标识符(即变量名),以便在当前作用域内可以正确解析该标识符的类型。

3、通过声明,编译器知道在未来某个点会有该类型的变量存在,并且可以根据这个信息进行类型检查。

4、使用extern关键字可以声明一个已在其他文件或本文件后续部分定义的变量。

二、变量定义

1、定义不仅声明了变量的类型,而且为变量分配了内存空间。

2、当定义变量时,编译器会在程序的适当位置产生代码来创建该类型所需大小的内存区域。

3、在同一个程序的不同文件或同一文件的不同作用域中,变量只能被定义一次。

4、变量定义通常伴随着初始化

    例如 int a = 10; 

    这样的语句既是定义也是初始化,它声明了整型变量a并为其分配内存空间,并赋予初始值10。

三、总结

1、当声明一个变量时,只是向编译器介绍它的名字和类型;

2、而当定义一个变量时,是实实在在地为它在内存中划出一块地方,并可以提供一个初始值(如果需要)。

3、在一个源文件中,对于外部链接的变量,可以多次声明但只能定义一次。

猜你喜欢

转载自blog.csdn.net/W_Fe5/article/details/135437775