static使用相关详解
来源:互联网 发布:趣发现是什么软件 编辑:程序博客网 时间:2024/06/06 18:41
//01static.cc
#include<iostream>using namespace std;void Test1(){//局部静态变量 //---1.只能使用在该函数作用范围,就是说在该函数函数体内可以使用(必须在定义结束后)//---2.若重复调用该函数,由于该静态变量a只定义一次,数据会使用改变了的//---3.与普通局部变量的区别:静态局部变量只有当程序结束才释放内存,而普通局部变量在对应函数执行完就释放内存//---4.注:如果在定义局部变量时不赋初值的话,对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。//-----而对自动变量来说,如果不赋初值则它的值是一个不确定的值,且之后调用的时候会被当成静态变量使用。与第三点有些冲突请注意!//--- 所以对于普通局部变量一定要初始化!static int a;a++;int b=0;//存储类型关键字auto修饰:auto register static externb++;cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;return;}int main(int argc,char**argv){Test1();Test1();Test1(); //cout<<"a="<<a<<endl;return 0;}
//02static.cc
#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;static int a=0;int b=10;void Test1(){//全局静态变量 //---1.存放于静态存储区//---2.与静态局部变量的区别:都是当程序结束才释放内存,但两者的作用范围不一样,全局 > 局部//---3.与普通全局变量的区别:都加了extern关键字说明,但静态的多个statica++;printf("a=%d\n",a);return;}int main(int argc,char**argv){printf("a=%d\n",a);Test1();Test1();Test1();return 0;}//03static.cc 03static.h 03main.cc
#include"03static.h"void Test(){b++;printf("b=%d\n",b);printf("addr b=%p\n",&b);return ;}int Test1(){printf("b=%d\n",b); printf("addr b=%p\n",&b); printf("a=%d\n",a); printf("addr a=%p\n",&a);return b;}
#ifndef _03STATIC_H#define _03STATIC_H#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;static int b=10;extern int a;void Test();int Test1();#endif
#include"03static.h"int a=10;/* 全局静态变量用于外部文件中 相当于重新定义,只是因为加了static不会出现重复定义的问题 但是查看一下两个地址就发现地址不一样,后面一个是0Xxxxx58,另一个是0Xxxxx5c,多了4个字节(相当于一个int的大小) 所以 1.想要使用外部文件中的值最好使用返回值取出来,或者用实参 以传地址传参方式传出来 2.想要使用外部文件(03main.cc)的变量,最好在欲使用区域的头文件(03static.h)里 加上extern声明,经过查看发现两个变量的地址一样 注:要使用的变量的文件(如果有的话)要包含进该头文件,如果没有可以在进行编译的时候将前者加上*/int main(int argc,char**argv){printf("addr a=%p\n",&a);b=Test1();printf("b=%d\n",b);//10printf("addr b=%p\n",&b);return 0;}
0 0
- static使用相关详解
- java之static使用详解
- C++中使用static详解
- static 相关
- 【iOS】const, static, extern使用详解
- this static final super关键字使用详解
- java中static的使用详解
- SVN使用相关命令详解
- SVN使用相关命令详解
- static详解
- static详解
- Static详解
- static详解
- static 详解
- static详解
- static 详解
- static详解
- Static详解
- 适合于图像处理方向的SCI期刊杂志列表
- 从“增信”到“征信”:互联网金融时代的中国个人征信体系发展
- 选择ABBYY PDF Transformer+ 三大理由
- 终于暂时解决了actionbar溢出菜单显示图标的问题
- Android weight权重适配
- static使用相关详解
- php中使用引用和global
- 静态注册的广播每次接收广播都会重新生成一个接收广播的对象
- vs2012 遇到 First_Chance Exception 的问题
- 关于viewpager+fragment中嵌套viewpager+fragment的问题处理:
- HTML + CSS短标题(二,三,四文字长度)两端对齐的方式
- css笔记
- do...while(0)的妙用
- linux memcached安装与使用