C++入門教程之二:變量


C++入門教程之二:變量

變量,顧名思義,意思是變化的量。變量的定義是計算機語言中能儲存計算結果或能表示值的抽象概念。一個基本的程序需要變量,因此變量是程序設計中的一大重點。

變量基本結構

var_type var_name;
//如
int hello;

其中var_name是變量類型,var_name是變量名稱。

數據范圍 變量所能存儲的數據。

1.整型變量

整型是最基本、最常用的變量類型,其表示的數字為整數。整型包括長整型、短整型、整型三種。

整型 int

int是最常見的數據類型,數據范圍是從-2147483648到2147483647的整數。

長整型 long

long是處理大數據的最佳選擇,其數據范圍是從-9.223372037×1018到9.223372037×1018-1的整數。

短整型 short

short是快速創建簡單數據的一個方法,數據范圍是從-32768到32767的整數

2.浮點型

浮點型又稱實型,其表示的數字為實數。浮點型數據的運算要比整型數據的運算慢得多,因此如非必要,盡量不要使用浮點型變量。浮點型變量包括單精度類型浮點型、雙精度類型和長雙精度類型三種

單精度類型浮點型 float

float是最常見的浮點型變量。其數據范圍是從-3.402823669×10-38-1到3.402823669×1038的實數。

雙精度類型浮點型 double

double是存儲非常大的數據的變量類型,其數據范圍是從-1.797693135×10-308-1到1.797693135×10308的實數。

長雙精度類型浮點型 long double

long doubledouble的數據范圍相同,為從-1.797693135×10-308-1到1.797693135×10308的實數。

3.字符型

字符型變量,顧名思義,即存儲字符和字符串的變量,變量的標識符是char。字符型變量存儲的是ASCII碼,對照表見下:
ASCII
此外,還有第二種字符串類型stringstring不是關鍵字,但是它的定義方法與其他類型一樣。

4.布爾型

布爾型變量的標識符是bool,這種類型的值與眾不同:它只有兩個值——truefalse,其中true在電腦中存儲為1false0

5.復數

復數的使用方法與前面幾種不同,需要包含頭文件complex
用法

complex<var_type> var_name {實部, 虛部};
//如
complex<double> a {1, 5};

假設有一個復數是1+5i,那么這個復數的實部為1,虛部為5。這里的var_type指的是實部和虛部兩個數據的變量類型。

6.auto類型

auto類型有兩個意義:

單獨使用

auto類型是一個很友好的類型。正如它的名字,auto意味着你不用知道這個數據的類型,因為編譯器會幫你推斷數據類型。比如你輸入auto a = 10000000000000000;編譯器會自動把auto替換為long

auto不能推斷復數類型和string

注:以下介紹的數據類型無法單獨使用,具體語法是

var_decoration var_type var_name;
//如
const int a;

在函數中使用

想如下代碼:

#include<iostream>
int add()
{
	auto int a;
	a+=1;
	cout << a << endl;
}
int main()
{
	add();
	add();
	return 0;
}	

你會發現,輸出的兩個數將都是2。auto變量在每次重新定義時將重新分配內存。

7.static類型

想如下代碼:

#include<iostream>
int add()
{
	static int a;
	a+=1;
	cout << a << endl;
}
int main()
{
	add();
	add();
	return 0;
}	

你會發現,輸出的兩個數將變成2和3。static變量在函數運行結束后會被保存下來。

8.register類型

register類型代表這個變量被存儲在了CPU的寄存器中。這意味着如果你想多次使用這個變量,使用速度將大大加快。但是register類型的可移植性較差,不同的電腦對register變量的處理不同,可能導致在某些電腦中該變量會崩潰。所以不建議使用。

9. extern類型

如果聲明一個extern類型的變量,則該變量可以跨文件使用。但是跨的文件必須同時編譯,否則無法使用。

10. const類型

const類型代表這個變量無法被改變。如果編譯器檢測到const變量值被改變,會報錯。const常來定義一個常量。

11.unsigned類型

unsigned類型的意義是將數據類型的數據改為非負的。這意味着其數據的取值范圍將發生改變。改變的算法為:假設原來的數據范圍是-a-1~a(a>0),則修飾后的數據范圍將變為0~2a。

前綴和后綴

前綴

前綴的作用是告訴編譯器這個數字的進制。用法為

0123	//八進制前綴為0
123		//十進制無前綴
0x1ac	//十六進制前綴為0x,十六進制中的a-f可以是大寫

后綴

后綴的作用是表明一個數字的類型,用法如下:

123				//int
123L			//long
123U			//unsigned int
123.123f		//float
123.123L		//long double

科學計數法

用法:

10e3			//即1×10^3
1.53e-5			//即1.53×10^-5

標識符要求

  1. 必須以字母或下划線為開頭
  2. 除開頭外,標識符可以是數字、下划線或字母
  3. 如果兩個標識符大小寫有區別,那么這兩個標識符會被認為是兩個變量。
  4. 標識符不得是關鍵字(如下圖)C++關鍵字

可以用如下方法定義多個同類型的變量:

int a, b, c;

變量初始化

基本語法:

var_type var_name = number;
//如
int a = 1;

注意!
想如下代碼:

int a, b = 100;

此代碼僅將b賦值為100,a並沒有被初始化。
如果想對多個變量賦同一個值,可以用如下方法:

int a, b;
a = b = 100;


免責聲明!

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



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