变量的命名规则:标示符要能体现含义,变量的名字一般用小写,用户自己定义的类一般第一个字母大写,如果标示符有多个单词组成,则需要加下划线。‘

变量声明和定义的关系:程序有多个文件组成,有时候需要再多个文件中共享一个变量,此时我们需要分离式编译,一定注意:变量的定义只有一次,而变量的声明却可以是多次的,在一个文件中需要用到变量时,我们就需要声明。

  其中,如果是想声明一个变量而不是去定义它(我们平时定义变量时,也是声明它,但声明变量和定义有着本质的区别),则我们使用如下语句:

在变量前加上extern关键字即可,记住:任何包含显示初始化的声明即成为定义,我们可以给由关键字标记的变量附上一个初始值,此时的声明就变成了定义。

变量的作用域:

  C++中作用域是程序中的一部分一段,C++中大多数域是以花括号分隔的。同一个名字在不同的域中是不同的,名字的有效区就是在他所在的花括号里。具体程序如下图。



 

引用:

我们可以把引用看做是为变量起了另外一个名字,引用需要加&声明符。例如

int  a=10;

int   &A=a;   //A是a的另一个名字

A=20;       //把20赋给A指向的对象,也就是a

谨记:引用必须要初始化,定义引用时,程序把它的初始值绑定,并不是将初始值复制给引用,这一概念要搞清楚,一点初始化完成,就不可以让引用重新绑定。所以需要初始化。我们操纵一个引用,就是在操纵引用所绑定的变量。对引用的赋值就是对与之绑定的变量的赋值。

指针:

指针本身就是一个对象,我们可以对指针赋值拷贝,指针在生命期中,可以指向不同的对象,并且指针无需在定义指针的时候初始化,指针可以不初始化,此时它有一个不确定的值。

空指针:不指向任何对象,让一个指针为空有三种形式,如下。

int *p=NULL;

int *q=nullptr;  //使用字面值nullptr来初始化

int *ptr=0;



建议初始化所  有指针,若指针没有初始化,当指针指向的变量不存在时,指针还仍然指向其变量所在的内存地址,此时若程序中引用此指针,会造成“虚悬指针”,只是很危险的,所以当我们不知道指针应该指向何处时,我们应该让他指向空,这样更加保险。要知道,调试指针错误很让人头疼。

c++学习笔记之变量的更多相关文章

  1. ES6学习笔记之变量的解构赋值

    变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; ...

  2. 批处理学习笔记3 - 变量声明和goto代替while循环

    批处理中没有while循环,只能用goto代替.下面是代码 @echo off set /a i = 0 :again echo %i% set /a i= %i% + 1 if %i% lss 10 ...

  3. 《JavaScript高级程序设计》学习笔记(3)——变量、作用域和内存问题

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第四章内容. 1.函数:通过函数可以封装 ...

  4. Python 学习笔记2 变量

    Python变量的一些命名规则和指南 每种编程语言都需要变量, 这些变量的命名,我们一般会遵守一些公认的规则. 已达到方便自己,他人阅读的好处. 变量只能包含字母.数字和下划线.变量可以以字母和下划线 ...

  5. ES6学习笔记之变量声明let,const

    最近用淘宝的weex做了个项目,最近稍微闲下来了.正好很久没有接触RN了,所以趁这个机会系统的学习一下ES6的相关知识. 孔子说:没有对比就没有伤害.所以我们要拿ES6和ES5好好对比的学习.这样才能 ...

  6. Go语言学习笔记1 变量,类型以及赋值

    1.变量 1.1 声明变量 使用var关键字可以创建一个指定类型的变量: var i int = 0 var i = 0 var i int 以上三个表达式均是合法的,第三个表达式会将i初始化为int ...

  7. Shell学习笔记 - 环境变量配置文件(转)

    一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件  或  . 配置文件 2. 命令示例 [root@localhost ~]# sou ...

  8. ruby 学习笔记 2 -变量

    变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...

  9. 0020 Java学习笔记-面向对象-变量

    变量分为哪些 成员变量:类里面,方法外面定义的变量 实例变量:没有用static修饰的变量,属于对象:存在期:创建实例-销毁实例:作用域:与该实例的生存范围相同 类变量:用static修饰的变量,属于 ...

  10. HTML 学习笔记 JavaScript (变量)

    变量是储存信息的容器. 实例 var x=2; var y=3; var z=x+y; 就像代数那样 x=2 y=3 z=x+y 在代数中,我们使用字母(比如 x)来保存值(比如 2).通过上面的表达 ...

随机推荐

  1. WWF3常用类 <第十一篇>

    一.WorkflowRuntime类 System.Workflow.Runtime.WorkflowRuntime是工作流的运行引擎.WorkflowRuntime在宿主中以自己独立的线程运行,它可 ...

  2. 关于Java中形参与实参的理解

    今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递与引用传递的区别).参考网站http://www.cnblogs.com/binyue/p/3862276.htm ...

  3. linux ---用uniq实现文件的并集和交集

    1. 取出两个文件的并集(重复的行只保留一份) 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) 3. 删除交集,留下其他的行 1. cat file1 file2 | sort | un ...

  4. oracle split

    select * from table(fun_strsplit('1,2,3,4,5')); 1.创建一个类型 ) 2.创建函数 CREATE OR REPLACE FUNCTION Fun_Str ...

  5. 单例模式(Winform窗体的实现)

    在我的设计模式分类当中,我选择单例模式作为我第一个要写的设计模式,其一,单例模式简单.容易理解让人接受,其二,单例模式很常用,在实际的Winform窗体应用开发中能够带来更好的客户体验. 单例模式的核 ...

  6. asp.net身份认证

    在网上看到几篇比较好的文章很详细讲解了Form.Membership.以及Identity身份认证 Form身份认证: http://www.cnblogs.com/fish-li/archive/2 ...

  7. 图片轮播jQuery

          <script type="text/javascript">         //图片轮播         var bannerIndex = 0; ba ...

  8. javscript处理XML DOM(待续)

    1.加载并解析XML文件 function loadXMLFile(url){ var xmldoc if(window.ActiveXObject){ xmldoc = new ActiveXObj ...

  9. POJ C程序设计进阶 编程题#2:字符串中次数第2多的字母

    编程题#2:字符串中次数第2多的字母 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536k ...

  10. 后缀为inc的是什么文件?C#中如何包含inc文件?

    在项目Web页面文件中,发现这么一句话: <!-- 页面字符集设置 begin--><!-- #INCLUDE FILE="http://www.cnblogs.com/C ...