定义在函数内部的变量叫局部变量(函数的形参也是局部变量)
定义在所有函数的外面的变量叫全局变量
全局变量在所有函数中均可以使用,局部变量只能在定义它的函数内部使用
#include <iostream>
using namespace std;
void Func()
{
static int n = 4; //静态变量只初始化一次
cout << n << endl;
++ n;
}
int main()
{
Func(); Func(); Func();
}
//输出结果:4 5 6
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[] ="- This, a sample string, OK.";
//下面要从str逐个抽取出被" ,.-"这几个字符分隔的字串
char * p = strtok (str," ,.-");
while ( p != NULL) //只要p不为NULL,就说明找到了一个子串
{
cout << p << endl;
p = strtok(NULL, " ,.-");
//后续调用,第一个参数必须是NULL
}
return 0;
}
<aside> ❓ 如果要自己编写 strtok 函数,该如何实现?
</aside>
char * Strtok(char * p,char * sep)
{
static char * start ; //本次查找子串的起点
if(p)
start = p;
for(; *start && strchr(sep,*start); ++ start); //跳过分隔符号
if( * start == 0)
return NULL;
char * q = start;
for(; *start && !strchr(sep,*start); ++ start); //跳过非分隔符号
if( * start) {
* start = 0;
++ start;
}
return q;
}
<aside> ⚠️ 程序的关键是使用静态变量。
</aside>