多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
变量的命名规则:标示符要能体现含义,变量的名字一般用小写,用户自己定义的类一般第一个字母大写,如果标示符有多个单词组成,则需要加下划线。 变量声明和定义的关系:程序有多个文件组成,有时候需要再多个文件中共享一个变量,此时我们需要分离式编译,一定注意:变量的定义只有一次,而变量的声明却可以是多次的,在一个文件中需要用到变量时,我们就需要声明。 其中,如果是想声明一个变量而不是去定义它(我们平时定义变量时,也是声明它,但声明变量和定义有着本质的区别),则我们使用如下语句: 在变量前加上extern关键字即可,记住:任何包含显示初始化的声明即成为定义,我们可以给由关键字标记的变量附上一个初始值,此时的声明就变成了定义。 ## 变量的作用域: C++中作用域是程序中的一部分一段,C++中大多数域是以花括号分隔的。同一个名字在不同的域中是不同的,名字的有效区就是在他所在的花括号里。具体程序如下图。 ![](https://box.kancloud.cn/2016-02-17_56c4469dd4cd1.jpg)** ## 引用: 我们可以把引用看做是为变量起了另外一个名字,引用需要加&声明符。例如 ~~~ int  a=10; int   &A=a;   //A是a的另一个名字 A=20;       //把20赋给A指向的对象,也就是a ~~~ 谨记:引用必须要初始化,定义引用时,程序把它的初始值绑定,并不是将初始值复制给引用,这一概念要搞清楚,一点初始化完成,就不可以让引用重新绑定。所以需要初始化。我们操纵一个引用,就是在操纵引用所绑定的变量。对引用的赋值就是对与之绑定的变量的赋值。 ## 指针: 指针本身就是一个对象,我们可以对指针赋值拷贝,指针在生命期中,可以指向不同的对象,并且指针无需在定义指针的时候初始化,指针可以不初始化,此时它有一个不确定的值。 空指针:不指向任何对象,让一个指针为空有三种形式,如下。 ~~~ int *p=NULL; int *q=nullptr;  //使用字面值nullptr来初始化 int *ptr=0; ~~~ ![](https://box.kancloud.cn/2016-02-17_56c446a8a50f3.jpg) 建议初始化所  有指针,若指针没有初始化,当指针指向的变量不存在时,指针还仍然指向其变量所在的内存地址,此时若程序中引用此指针,会造成“虚悬指针”,只是很危险的,所以当我们不知道指针应该指向何处时,我们应该让他指向空,这样更加保险。要知道,调试指针错误很让人头疼。