C++教程-----C++變數型別和變數的定義

Lpy_Now發表於2020-03-31

C++教程正在更新中,具體請檢視教程目錄

C++資料型別和變數的定義

C++完全可以理解成C的增強版,增加了許多不同的資料型別,並且同時對C向下相容,同時對C語言資料的結構等等進行了擴充套件,C++在定義變數的同時不需要再結構名,聯合名,列舉名前加上struct,union,enum。

C++中有許多不同的資料型別,以下的內容主要參考和重新創作根據cppreference

在這裡只介紹一些常見和常用的資料型別

1.void

void值為空集的型別,不存在void型別的陣列,也不存在到void的引用,並且允許void指標和返回void型別的函式,這個部分將再之後的C++函式的部分進行講解。

2.bool

在電路中,我們可以用0/1分別表示電路的關閉和開啟,同時,在計算機中我們用True和False來表示電路的開和閉,因此在C++中新增了一個新的型別–bool。bool型別的物件只存在兩個數值:0/1或者true/false,並且在定義物件的同時,bool型別的物件佔用的空間更小。

3.int

在C++中int定義的是16位整數,也就是16位二進位制位表示的整數,其範圍為:-2147483648 ~ 2147483647。在進行程式設計的時候,需要根據環境適當選擇不同的型別。

4.long long

在C++中long long定義的是64為整數,也就是64位二進位制位表示對整數 -9223372036854775808 ~ 9223372036854775807也就是數字長度19位的數字

5.char

字元型別

6.string

string可以定義一個字串,同時和陣列結合也可以定義字串的陣列,可以看作char型別的增強版,string型別的字串可以理解成長度無窮的字串實際長度和計算機效能和記憶體有關。

7.float/double

在C++中存在浮點數,也就是數學中的小數,float和double都表示小數,並且表示數字的範圍不同。

C++還有很多資料型別,在之後的文章中會逐步介紹

下面來說明C++變數的定義

C++變數的定義可以理解成如下公式:型別 物件名 (初始值),在定義變數的過程中首先變數的型別必不可少,必須在定義變數之前宣告變數的型別int,char,string等等,其次,定義變數的名字,在定義變數的同時我們可以對變數給予一個初始的值也可以不進行初始化。

在C++中定義變數的操作如下:

#include<map>
#include<list>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<iomanip> 
#include<cstring>
#include<iostream>
#include<algorithm>
#define R register 
#define LL long long 
using namespace std;

int main(){
	int number_1;
	int number_2 = 0;
	bool check = true;
	string name;
	return 0; 
}

同時在C++中存在全域性變數和區域性變數,全域性變數可以認為可以在整個程式中使用,在整個程式中呼叫,定義的時候需要在函式位定義;區域性變數需要在函式內定義,只能在所定義該變數的函式內使用,在實際使用的過程中,全域性變數所能開闢的大小相對於區域性變數能開闢的記憶體大小要大很多,區域性變數在定義時,數字型別預設為0,字元預設為空,bool型別預設為Flase,在區域性變數定義的時候變數初始值和記憶體有關,初始值隨機,有時候需要將變數初始化。

常量

如果說變數是在程式執行的過程中可以改變的記憶體單元的名字(變數儲存在記憶體上),那麼常量就是值固定不變的記憶體單元,因為在程式設計的過程中有時我們不希望一些變數被隨意修改,比如我們在計算一個球的體積的時候,我們需要用到Π,並且在使用的過程中並不希望Π因為某些原因被修改,因為不小心修改了Π可能會對以後的計算造成影響,這時候我們就引進了常量,常量一旦被定義,在之後的程式設計的過程中將不會再被修改,在C++中通常用const和constexpr來定義常量,具體的定義公式如下:

​ const 常量型別 常量名 = 常量的表示式

​ constexpr 常量型別 常量名 = 常量的表示式

常量必須在定義的時候就進行初始化,不能在使用的過程中進行初始化,並且定義的常量一經初始化就不能再被修改,定義常量的示範如下:

const int name = "Lpy_Now";
const int number_1 = 10;
const double number_2 = 1.0;

int main(){
	int number_3 = 1;
	const int number_4 = number_1 + number_3;
	return 0;	
} 

constexpr和const在大多數情況下作用是相同的,唯一的區別是資料初始化的時間不同,constexpr定義的常量必須在定義的同時就對變數初始化完成但是const定義的常量使用範圍就叫為寬泛,這樣的常量可以在使用這個常量之前初始化即可。

檢視上一篇:程式導向程式設計和麵向物件程式設計的區別和C++語言的基礎輸入輸出以及string的使用
檢視下一篇:C++指標(上)-----基礎篇
檢視目錄:C++教程目錄

相關文章