/** * 书本:【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; }
原文地址:http://blog.csdn.net/cutter_point/article/details/39346101