C++變量,常量,數組和字符串詳解
一、內存和尋址概述
可編程設備包含微處理器和一定數量的臨時存儲空間。臨時存儲器被稱為隨機存取存儲器(RAM)。
RAM類似於宿舍裡成排存物櫃的存儲區域,每個存物櫃都有編號,即地址。要訪問特定的內存單元,需要使用指令要求處理器從這裡獲取值或寫入值。
微處理器負責執行應用程序,並從RAM中獲取要執行的應用程序以及相關聯的數據,包括瞭顯示到屏幕上的數據和用戶輸入的數據。
二、變量
顯式地指定用於存儲的內存單元的地址,如578,容易出錯,因此產生瞭變量。
1.聲明變量
variable_type variable_name;
variable_type variable_name= initial_value;
變量類型向編譯器指出瞭變量可存儲的數據的性質,變量名替代瞭變量值在內存中的存儲地址。
可聲明並初始化多個類型相同的變量。
如:int FirstNumber=0,SecondNumber=0
,Multiplication=0;
可在開頭聲明變量,也可在需要時再聲明變量。
#include <iostream> using namespace std; int main(){ cout << "----兩數相乘----" <<endl; cout << "輸入第一個數字:"; int FirstNumber = 0; cin >> FirstNumber; cout << "輸入第二個數字:"; int SecondNumber = 0; cin >> SecondNumber; int MultiplicationResult = FirstNumber * SecondNumber; cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; return 0; }
程序中聲明瞭FirstNumber
和SecondNumber
變量,用於臨時存儲用戶輸入的數字;
通過設置變量,程序員可以使用對人類明瞭的名稱,把將變量關聯到地址以及創建RAM訪問指令的工作留給編譯器做。
註:a、變量名可包含字母和數字,但不能以數字開頭,變量名不能包含空格和算數運算符,可使用下劃線,不能是保留的關鍵字(如return)。
b、存儲在變量中的數據被存儲在內存中。
2.變量的作用域
2.1 局部變量
#include <iostream> using namespace std; void MultiplyNumber(){ cout << "----兩數相乘----" <<endl; cout << "輸入第一個數字:"; int FirstNumber = 0; cin >> FirstNumber; cout << "輸入第二個數字:"; int SecondNumber = 0; cin >> SecondNumber; int MultiplicationResult = FirstNumber * SecondNumber; cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; } int main(){ //調用函數 MultiplyNumber(); return 0; }
註意:不能在函數MultiplyNumber()外調用FirstNumber和SecondNumber變量,因為這些變量的作用域是局部的,即從聲明它的語句開始到當前函數的末尾。
函數結束後,將銷毀所有局部變量,並歸還它們占用的內存。
不同函數中聲明的變量為獨立的實體,名稱可相同,但作用域不同。
2.2 全局變量
#include <iostream> using namespace std; //全局變量 int FirstNumber = 0; int SecondNumber = 0; int MultiplicationResult=0; void MultiplyNumber(){ cout << "----兩數相乘----" <<endl; cout << "輸入第一個數字:"; cin >> FirstNumber; cout << "輸入第二個數字:"; cin >> SecondNumber; MultiplicationResult = FirstNumber * SecondNumber; cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; } int main(){ //調用函數 MultiplyNumber(); cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; return 0; }
在函數外部聲明的變量為全局變量。
雖然MultiplicationResult
的值在MultiplyNumber()
中獲得,但仍可在main()
中使用。
3.c++變量類型
3.1、bool佈爾類型
true和false
直接賦值:
如bool A=false;
結果為佈爾類型值的表達式:
bool D=(User=="yes");
3.2 char字符型
char UInput="Y";
註:表示內存空間容量大小的單位是位和字節。位的取值為0或1;字節可以包含字符的數字表示。
示例中使用字符數據時,編譯器把字符轉換成可存儲到內存中的數字表示。“Y”的ASCⅡ碼為89,因此編譯器在分配給UInput的內存空間中存儲89.
4.常量
定義常量後,就不能修改它的值。
與變量一樣,常量占用內存空間,並使用名稱標識為其預留的空間的地址,但不能覆蓋該空間的內容。
總結
為何給變量賦初值?
有時候,需要根據變量的值做條件處理,未賦值的變量包含的內容是隨機的。
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!