變量的命名規則:標示符要能體現含義,變量的名字一般用小寫,用戶自己定義的類一般第一個字母大寫,如果標示符有多個單詞組成,則需要加下劃線。
變量聲明和定義的關系:程序有多個文件組成,有時候需要再多個文件中共享一個變量,此時我們需要分離式編譯,一定注意:變量的定義只有一次,而變量的聲明卻可以是多次的,在一個文件中需要用到變量時,我們就需要聲明。
其中,如果是想聲明一個變量而不是去定義它(我們平時定義變量時,也是聲明它,但聲明變量和定義有著本質的區別),則我們使用如下語句:
在變量前加上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;
~~~

建議初始化所? 有指針,若指針沒有初始化,當指針指向的變量不存在時,指針還仍然指向其變量所在的內存地址,此時若程序中引用此指針,會造成“虛懸指針”,只是很危險的,所以當我們不知道指針應該指向何處時,我們應該讓他指向空,這樣更加保險。要知道,調試指針錯誤很讓人頭疼。