C++ 静态局部变量的作用


#include<iostream>
using namespace std;
void printhaha(){
	static char haha[] = "haha";
	cout<<"hello "<<haha<<endl;
	haha[0] = haha[0]+1;
}
void printhehe(){
	//cout<<"hello: "<<haha<<endl;//error: 'haha' was not declared in this scope
}
int main(){
	printhaha();
	printhaha();
	printhaha();
	return 0;
}

Java中静态局部变量是非法的,但是在C++中却是合法的。它同时拥有静态变量和局部变量的特性,即

编译时会自动初始化
会被放到内存的静态区
只能在局部被访问

在本例中,多次调用printhaha函数,用的都是前一次退出时的结果,而且printhehe函数无法访问haha变量。
程序输出如下:

hello haha
hello iaha
hello jaha


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM