1.*p++和(*p)++的区别
     *p++是先取值,然后将指针地址执行++操作
     (*p)++是先取值,然后对(*p)这个值进行++操作

2.枚举变量enum的值如何计算

enum{a,b=5,c,d=4,e};
cout<<a<<b<<c<<d<<e

 结果为0 5 6 4 5
因为在枚举变量的值默认为前一个变量的值加1,而第一个枚举值没有被赋值,所以默认为0

3.static的应用
(1)局部静态变量
     存储空间分配不同,auto类型分配在栈上, 属于动态存储类别, 占动态存储区空间, 函数调用结束后自动释放, 而static分配在静态存储区, 在程序整个运行期间都不释放. 两者之间的作用域相同, 但生存期不同.
      static局部变量在所处模块初次运行时进行初始化工作,且只操作一次
      如果不赋初值,则自动赋初值为0或空字符

void staticLocalVar()
{
 static int a = 0; // 运行期时初始化一次, 下次再调用时, 不进行初始化工作
 cout<<"a="<<a<<endl;
 ++a;
}

int main()
{
 staticLocalVar(); // 第一次调用, 输出a=0
 staticLocalVar(); // 第二次调用, 记忆了第一次退出时的值, 输出a=1
 return 0;
}
View Code

相关文章: