c++学习day4

1.结构(struct)

struct name{

  int num;

  name *next;

1)所占内存空间即结构中所有成员的变量大小之和

2)定义指向结构变量的指针比如 name *a; name b; a = &b;

访问其成员变量a->num或(*a).num

2.全局变量/局部变量:定义在函数外/内的变量

静态变量:特点是其存放地址在程序运行期间不发生变化,且只初始化一次全局变量都是静态变量,局部变量如果定义前面加了"static",也成为静态变量。

非静态变量:在每次函数调用时可能不同,但在函数的执行期间不发生变化。非静态变量一定是局部变量。

注:静态局部变量的应用很多,比如说strtok,它的应用方法是

char *p = strtok(str,',');

while(p != NULL){

  cout<<p<<endl;

  p = strtok(NULL,',');

}

这里会奇怪为什么第一次的输入是str,后续的输入都是NULL。其实这里库函数strtok里就使用到了静态局部变量。

其思路是,当输入不为NULL时,默认为第一次进行分割,并定义静态局部变量static char *start,通过++start对字符进行遍历,在完成一次分割后,将start++,从而实现记录当前分割的位置,在后续分割继续使用start的值。

 

猜你喜欢

转载自www.cnblogs.com/fanmu/p/10548743.html
0条评论
添加一条新回复