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

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

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

在变量前加上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. jquery css快捷方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Landsat 8 OLI_TIRS 卫星数字产品

      产品描述           2013 年2月11日,美国航空航天局(NASA) 成功发射Landsat-8卫星.Landsat-8卫星上携带两个传感器,分别是OLI陆地成像仪(Operation ...

  3. docker 换更优秀的 文件系统 比如 OverlayFS(centos7 overlay2)

    内容摘自:http://www.projectatomic.io/blog/2015/06/notes-on-fedora-centos-and-docker-storage-drivers/ doc ...

  4. svn服务端配置

    1.建立版本库 创建一个新的Subversion项目svnadmin create /var/www/svndata/njlrxx 配置允许用户jiqing访问cd /var/www/svndata/ ...

  5. ct任务添加与中控机批量后台操作

    ct 任务nohup sh ./bin/start.sh </dev/null >/dev/null 2>&1 & 中控机批量 for h in `get_hosts ...

  6. 深入浅出Nodejs读书笔记(转)

    Node简介 这一章简要介绍了Node,从中可以了解Node的发展历程及其带来的影响和价值. 为什么叫Node?起初,Ryan Dahl称他的项目为web.js,就是一个Web服务器,但是项目的发展超 ...

  7. Android IOS WebRTC 音视频开发总结(八)-- ios上移植webRTCDemo

    这篇文章主要介绍ios webrtcdemo的实现及相关注意事项,转载请说明出处(博客园RTC.Blacker) 前面很多人问webrtc android下有webrtcdemo,ios上怎么找不到, ...

  8. HTML5上传图片预览

    <!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...

  9. 十四、Struts2的国际化

    十四.Struts2的国际化 1.配置全局国际化消息资源包 配置全局消息资源包 <!--配置全局消息资源包 -->     <constant name="struts.c ...

  10. CSS: word-wrap和word-break

    最近修改页面排版的一些问题,发现关于内容分词换行有两个主要的CSS: word-wrap 和 word-break 特别是word-wrap还有个取值break-word,更使得这两个属性容易混淆. ...