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

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

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

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

的确很烦人,

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

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

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

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

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

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

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

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

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

  函数传递的参数:

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

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

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

  函数中定义的变量:

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

        销毁:在函数执行完成。

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

  代码块中定义的变量:

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

        销毁,代码块执行结束

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

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

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

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

  ②:静态持续变量

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

    特点:寿命比较长。

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

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

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

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

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

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

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

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

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

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

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

      

  

时间: 2024-08-06 04:35:27

C++变量的使用(笔记一)的相关文章

预定义变量 - PHP手册笔记

原文:预定义变量 - PHP手册笔记 预定义变量将所有的外部变量表示成内建环境变量,并且将错误信息表示成返回头.超全局变量是在全部作用域中始终可用的内置变量.在函数或方法中无需执行global $variable,就可以访问它们. $GOBALS引用全局作用域中可用的全部变量,在PHP中总是可用. $_SERVER服务器和执行环境信息,这个包含的数组元素较多,比如$_SERVER['PHP_SELFT'],$_SERVER['SCRIPT_FILENAME'],$_SERVER['SERVER_

读汤姆大叔《JavaScript变量对象》笔记

一段简单的JavaScript代码思考 先看一段简单的代码,打印结果是??为什么why?? 从上述打印结果不难看出,在打印基本变量num.函数表达式fn.函数声明fun时,就已经知道变量num.函数表达式fn值为undefined,函数声明fun值为function 但这样会存在一个疑问?js在代码执行之前打印时(变量.函数表达式.函数声明)就存在值,那么在打印(变量.函数表达式.函数声明)之前究竟发了什么?? [答案是变量对象.执行上下文代码的2个阶段] (当然 打印在基本变量num.函数表达

JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记四)

1.宿主对象与宿主环境 宿主对象:由ECMAScript实现的宿主环境提供的对象,可以理解为:浏览器提供的对象.所有的BOM和DOM都是宿主对象. 宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器等. 2.日期的转换 var now =new Date(); typeof(now+1) //string typeof(now-1) //number now==now.toString(); //true now>(now-1) //tr

bash脚本编程之(1/4) 变量、变量类型等笔记

Shell编程: 编译器,解释器 编程语言: 机器语言.汇编语言.高级语言 静态语言: 编译型语言 强类型(变量) 事先转换成可执行格式 c\c++\JAVA\c# 动态语言: 解释性语言 弱类型 边解释边执行 asp/asp.net/php/shell/python/perl Shell: 弱类型编程语言 强类型: 变量在使用前,必须事先声明,甚至还需要初始: 弱类型: 变量用时声明,甚至不区分类型: 面向过程: Shell C 面向对象: JAVA Python, perl, c++ 变量:

变量&数据类型(php笔记)

php标记:四种php标记     1.<?php echo 'hello';?>     2.<? echo 'hello'; ?> //短标记     3.<script language="php"> echo 'hello';</script>     4.<% echo 'hello'; %> //asp风格     注:2.4需要修改php.ini配置文件才可以使用,1.3可以直接使用. php注释:     1.

奶爸业余单片机学习之:C语言基础——指针(指针变量)学习笔记

指针变量的定义: 存放地址的变量称为指针变量 1. 定义指针变量的一般形式如下: 类型名 * 指针变量名1,* 指针变量名2,... * 指针变量名n ; 例如:  int * X, *Y, *Z; 等同于: int * X; int * Y; int * Z; 实例: #include<stdio.h>void main(){    int x = 1;    int y = 2;    int* A;        //声明一个指向整形变量的指针变量A    int* B;        

Bash shell基本操作命令和环境变量命令(笔记)

一.Bash Shell 的基本操作命令 1.type:查看命令是否是bash shell 的内置命令 type cd 2.echo :变量的显示 echo $变量 echo name 3.unset :取消刚才设置的变量 unset name 4.env 或者set 命令查看环境变量 5.export 自定义变量转成环境变量 export 变量名 6.read 变量键盘读取 read [-pt] variable 7.declare/typeset 声明变量的类型 declare [-aixr

python变量和数据类型笔记

数据类型 可以直接print不同进制运算 print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出. 字符串 1.字符串可以用''或者""括起来表示. 2.如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示: 3."I'm OK"类似的,如果字符串包含",我们就可以用' '括起来表示:'Learn "Python" in imooc' 4.如果字符串既包含'

PHP学习笔记——1.变量

目录: PHP学习笔记——1.变量 PHP学习笔记——1.常量 1.变量的组成 包括:变量名.变量值.存储地址 例:$a = 23; 执行后,在变量表中添加了$a这个变量名,在内存中开辟出一块空间,空间值为23,而$a指向23所在空间位置 例:echo $a; 执行后,先从变量表中找到$a,再根据其地址找到相应内存空间地址,读出23的值 2.变量的声明 $变量名 = 变量值; 3.变量名命名规范 字母.下划线.数字的组合 数字不能作为开头 区分大小写 4.变量的类型 ①五种标量: 整型:0 2

JavaScript权威设计--JavaScript函数(简要学习笔记十)

1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"likeZqz()".有些些函数是用作内部用的或者为私有函数通常以一条下划线为前缀,就像"_zqzName()". 2.以表达式方式定义的函数 如: var zqz=function (){ return "zhaoqize"; } 在使用的时候必须把它赋值给一个变