C++变量的使用(笔记一)

  学了这么久的C++,也没有总结过自己到底学会了什么,希望在今后的学习中,把自己学习的记录下来。

  首先,我们学习的每一门语言,都需要容器来存储一些事物,容器或者大,或者小,单总是用来装东西的,今天我们从最小的开始。——变量

  变量,在我们的学习中,无处不在,其生存期也给我们带了了很多的困扰,不知道在哪里用,用过之后,其最后的值到底是多少,在使用的时候,命名一样的话,到底我们现在用的是哪一个。

的确很烦人,

  变量的存储适合内存分不开的,那么我们就结合内存模型来解析一下我们的变量。

  我们常见的变量,在头文件中有、在我们的类声明中有、在我们函数传递的参数中有、在我们的函数中定义的,在代码块中定义的。那他们的作用范围是什么呢?是什么时候创建,什么时候死掉的呢?

我们来总结一下。(说一下我的理解。)

  生存期,说明变量的生存状况,就是我们书中说的什么生存持续性。表达其生存的持久时间。(自动存储持续性,静态存储持续性,动态存储持续性,线程存储持续性)。

  作用域,表达变量在程序中的作用范围,即什么时候创建(开始存在),到什么时间销毁(死掉了)。

  链接性,表达变量是否可跨文件起到作用。即文件间是否可以共享。

  这里我们理解了一些基本的概念。就可以开始了,我们从小到大的来说一说变量。

  ①自动存储持续性,作为局部变量,只供自己使用,就没有链接了

  这种类型的变量,有我们上面讲的:函数传递的参数,函数中定义的变量,代码块中定义的变量。

  函数传递的参数:

  作用域:  开始存在:在我们声明的位置。程序执行所属的代码时,分配内存。

        销毁:在函数执行完成的时候。

  ※:隐藏外面定义的同名变量。

  函数中定义的变量:

  作用域:     开始存在:执行到我们函数中定义的位置,开始分配内存,

        销毁:在函数执行完成。

  ※:隐藏外面定义的同名变量。

  代码块中定义的变量:

  作用域:  开始存在:执行到我们的代码块时,分配内存,

        销毁,代码块执行结束

  ※:隐藏外面定义的同名变量。

  小结:当我们执行到函数,或代码块的时候,里面的变量隐藏了外部我们定义的同名变量,那么,执行之后呢,我们外部的变量是否改变了呢?

     没有改变,打我们执行完我们的函数,代码块之后,我们在里面定义的变量销毁了,跳出来之后,我们外部定义的变量有重新起到了他的

     作用。对向下执行的代码,再次可见,可以使用。销毁的变量不复存在,现在变量的值仍旧是他本来的值

  ②:静态持续变量

    静态持续变量,有三种链接性:外部链接性,内部链接性,无链接性。

    特点:寿命比较长。

    链接性是与文件相关的,那么就不能再函数内部,类的内部,代码块的内部定义我们的变量了。

    静态持续性,外链接:必须在代码块的外面声明它;

    静态持续性,内连接:必须在代码块的外面声明它,并使用static限定符;

    静态持续性,无链接:必须在代码块的内部声明它,并使用static限定符。

    生存周期:所有的静态持续变量,在整个程序执行期间都存在。    

    (static的两种用法:其一:用于局部声明,以指出变量是无链接性的静态变量,static表示的是存储持续性。其二:用于代码块外面的声明,static表示内部链接性,而变量已经是静态持续性了。)

    1)静态持续性外链接:即链接性为外部的变量,在整个文件起作用。还可以在其他的文件中使用》》》》单必须声明它。符合单定义规则。通常在头文件中定义

      C++中的两种声明方式,一种是定义声明或简称定义(它给变量分配储存空间),一种是引用声明(不分配储存空间,引用已有变量,必须使用extern关键字)。

    2)静态持续内连接:与静态持续内连接相似,不过在其定义的前面,添加一个static。使其成为内连接。只能在其所属的文件中使用。

    3)静态持续无链接:将static限定符用于在代码块中定义的变量中,就使这个变量成为了静态持续无链接的变量。

  变量大概个离这样分吧,看了C++ primary 感觉这样分挺好。自己总结了一下,仅供参考。

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

转载于:https://www.cnblogs.com/shuntianyuchuang/p/4722371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值