标签:
const:
限制符号,限制某个变量所指向的内容不能通过这个对象修改。
但是可以通过其他的修改,比如:
int main(){ int x=5; const int &y=x; x++; cout<<y<<" "<<x; return 0; }
但是如果这样就通不过编译了
所以,const的作用是限制申明出来的变量的权限,所以我们有这么一个等式:
权限小=权限大 权限大!=权限小
什么意思呢:如下:
int main(){ int x=5; const int* y=&x; x++; cout<<*y<<" "<<x; return 0; }
int main(){ const int x=5; int* y=&x; x++; cout<<*y<<" "<<x; return 0; }
const最后一个问题是const与指针的问题,const出现在*号前,代表这个指针只能指向常量,出现在*号后,代表这个指针只能指向那块区域,但是那块区域的值可以改动,如下:
int main(){ const int y=5; int z=0; const int* x=&y; x=&z; cout<<*x<<" "<<x; return 0; }
int main(){ const int y=5; int z=0; int const* x=&y; x=&z; cout<<*x<<" "<<x; return 0; }
int main(){ int y=5; int z=0; int * const x=&y; x=&z; cout<<*x<<" "<<x; return 0; }
int main(){ int y=5; int z=0; int * const x=&y; (*x)++; cout<<*x<<" "<<x; return 0; }
static作用有以下两个:
1.规定变量作用区域,就是变量所在的函数或类(同于局部变量),只有在该函数/类才能调用
2.规定变量的存储地址(也就是确定了其生存期),static变量存在静态区域,不是在栈空间,函数/类执行完毕后不会被回收,且其值会一直保留,直至程序结束
全局变量:
全局变量就是静态变量少了第一个约束,它可以被任意的类或函数调用
标签:
原文地址:http://blog.csdn.net/u014403897/article/details/45917257