C++學習 之 變量和常量的使用(筆記)


一、變量

1.對變量含義的理解:

  變量就像是經過工廠加工后有一定容量的容器。在變量定義時,系統充當了工廠的角色,按照類型為變量分配相應的空間。定義完成的變量可以存放相應類型的值,存放的值大於變量所能接受的范圍時變量會發生溢出。顧名思義,變量里的值一般是可以修改的,體現在該變量存儲區的值可以復寫。

2.C++中變量的聲明:

  C++定義變量的語法:

      variable_type(變量類型) variable_name(變量名稱);

      或

      variable_type(變量類型) variable_name(變量名稱) = initial_value(初始值);

如:

int v1;
char v2='a';

  聲明多個類型相同的變量:

      variable_type(變量類型) variable_name(變量名稱),variable_name(變量名稱),...,variable_name(變量名稱);

      variable_type(變量類型) variable_name(變量名稱) = initial_value(初始值),...,variable_name(變量名稱) = initial_value(初始值); 

      variable_type(變量類型) variable_name(變量名稱),...,variable_name(變量名稱) = initial_value(初始值);

如:

int a,b,c,d;
int e=0,f=0,g=0;
int h,i=0;

3.理解變量作用域:

  每個變量都有作用域,變量的作用域決定了變量定義的生效范圍,就如同法律條文一樣,一般不同國家的法律條文僅作用於本國,變量僅生效於其作用域。函數內定義的變量的作用域為該函數內,全局變量的作用域為全局。不同函數內定義的變量被視為獨立實體,當該函數執行完畢便釋放變量所占用的內存空間,即便不同函數內定義的變量名稱相同也不會相互影響。

  全局變量定義示例:

#include<iostream>
using std::cout;
using std::endl;
int a=20;
void Print()
{
    cout<<a<<endl;    
}
int main()
{
   Print(); cout
<<a<<endl; }

  局部變量定義示例:

#include<iostream>
using std::cout;
using std::endl;
int a=20;
void Print()
{
    int b=30;
    cout<<b<<endl;  
    cout<<a<<endl;    
}
int main()
{
    Print();
    cout<<a;
    //cout<<b;
}

  注意:main函數中的注釋行"//cout<<b;"如果去掉注釋符號會有類似於'b' was not declared in this scope的報錯信息。因為變量 "b"只在Print函數中定義了,在main函數中沒有定義。

4.C++中常見變量類型和取值范圍:

  4.1 bool變量

  C++中專門為存儲布爾值true和false而創建的變量類型,bool變量的取值為true或false。

  布爾變量定義示例:

bool running=false;

  4.2 char變量

  char變量用於存儲單個字符。char的取值為256個字符值,在ASCII碼中用7位二進制表示字符,可表示128個不同的字符值;在擴展ASCII碼用一個字節中的高一位做擴展位,其余7位表示128個不同的字符

  加上高位的一位共8位可表示256個字符值。

  

char input_char='Y';//定義名為input_char的變量,並設置初始值為Y。

  4.3 unsigned int 和 int變量

  unsigned int 中有 unsigned short int 和 unsigned long int ,unsigned short int為二進制16位表示范圍為0~65535,unsigned long int 為二進制32位表示范圍為0~4294967295。在大多C++編譯器中int被認

  為擁有4個字節共32位,即直接使用unsigned int時 其取值范圍大多時候為0~4294967295,部分編譯器會把它。unsigned long long int 的范圍為unsigned long int的兩倍。int 中有short int 和 long int 以及

  long long int,它們的二進制表示最高位為符號位,所以 short int 的取值范圍 -32768~32767,long int 的取值范圍為-2147483648~2147483648,long long int 的取值范圍是 long 的基礎上擴展兩倍。

  4.4 浮點類型 float 和 double

  浮點數就是實數,可以是正,也可以是負,還可以包含小數值。如果要存儲小數就可以聲明浮點類型的變量,如:float Pi=3.1416;聲明雙精度浮點數(double)變量如:double Pi=3.14159265,注意想存

  儲兩個整數相除得到的小數結果時,不能直接相除,而應在把整數換成類似"22.0"這樣的小數。

5. typedef替換變量類型

  C++允許我們將變量類型替換為我們認為方便或更具描述性的名稱,為此可使用關鍵字 typedef。例如:typedef unsigned int Integral_type;給 unsigned int 一個別名 Integral_type。

二、常量

1. 常量的定義:

  不被人為改變的量叫做常量,換句話說常量的值不能被修改。如果我們想定義了一個具有和變量一樣帶有名稱的常量,我們可以使用const來定義,也可以使用enum聲明枚舉常量。在C++11版本中新增了

  常量表達式,聲明時使用constexpr。不推薦使用#define定義變量,因為其定義的是宏常量,只是字符替換,編譯器不關心常量的類型,沒法進行語法的檢查。const比#define更安全並且更加簡潔高效;    #define兼容性更好。

2.枚舉常量的定義:

  使用enum為一種變量設置特定一組取值。

    例如枚舉常量包含彩虹的顏色:

enum RainbowColors
{
    Violot = 0,
    Indigo,
    Blue,
    Green,
    Yellow,
    Orange,
    Red
};

  聲明的枚舉常量,編譯器會把它轉化為整數,其默認起始值為0,我們也可以給定初始值如上例中顯式給出初始值為0,我們還可以給每個枚舉常量賦指定值(使用默認值時每個值都比前一個大1,當然除

  了第一個)。

  注意:變量命名要符合規范,要站在別人的角度考慮,要使得變量名或常量名具有描述性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM