【ThinkingInC++】52、函数内部的静态变量

时间:2022-04-28 19:56:38
/**
* 书本:【ThinkingInC++】
* 功能:函数内部的静态变量
* 时间:2014年9月17日18:06:33
* 作者:cutter_point
*/ #include "../require.h"
#include <iostream> using namespace std; char oneChar(const char* charArray=0)
{
const static char* s; //自己主动初始化为0,这个const表示这个指针指向的是char类型的指针。
//不能变成其它的指针类型或变成非指针。地址能够变,类型不能变,并且这个仅仅初始化一次
if(charArray)
{
s=charArray; //地址能够随便赋值,可是*s不能改,并且仅仅初始化一次
return *s;
}
else
require(s, "un-initialized s"); if(*s == '\0')
return 0; return *s++;
} char* a="abcdefghijklmnopqrstuvwxyz"; int main()
{
oneChar(a);
char c;
while((c=oneChar()) != 0) //后面s是静态的还是指向那个地方
cout<<c<<endl; return 0;
}