变量类别(自动,静态,寄存器,外部)

1.auto自动变量

auto int a = 0; 会报错!!!

出现错误提示:"auto”不能与任何其他类型说明符组合,因为新版C++定义auto不能和任何类型进行组合。

!!!如果一个变量不加关键字加以声明,那就是自动。

2,static 静态变量。

有希望函数调用结束后,其中变量值不会消失使用静态变量即可。下次调用函数时,该变量调用上次函数调用结束的值。

例如

#include<iostream>
using namespace std;
int fun(int);
int main() {
	int n = 5;
	for (int i = 1; i <= n; i++) {
		cout << i << "!=" << fun(i) << endl;
	}
	return 0;
}
int fun(int i) {
	/*auto int a = 0;  会报错!!!*/

	static int n = 1;
	n = i * n;
	return n;


}

运行结果为:

1!=1
2!=2
3!=6
4!=24
5!=120

静态变量的一些性质:为赋初始值,默认为0;而auto默认为随机,且会报错。

register寄存器变量

一些多次使用的变量,为了提高执行效率,c++允许将局部变量的值存放在CPU的寄存器中,不必再从内存调用。

extern声明的外部变量

他的作用域就是从变量定义处开始,到本程序文件的末尾,在此作用域内,全局变量可以为本文件中各个函数所引用。!!!!编译时全局变量将会分配在静态存储区。

注意事项:含有多个文件的程序,如果在不同文件中定义相同的变量,链接时会报错,所以把一个变量extern来声明为外部变量。

--------------------------------------------------------------------------------------------------------------------------------

补充:

1.自动变量 寄存器变量 为动态存储;静态局部变量,静态外部变量,外部变量都为静态存储。

2.内部函数 例如:static int func(int a)使函数只局限于本文件,如果在不同的文件中有同名的内部函数,互不干扰。简称为局部化;

外部函数 例:extern  int func(int a)表示为外部函数可以供其他文件调用。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值