/**
* 书本:【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;
}