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;
}

程序中聲明瞭FirstNumberSecondNumber變量,用於臨時存儲用戶輸入的數字;

通過設置變量,程序員可以使用對人類明瞭的名稱,把將變量關聯到地址以及創建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的更多內容!

推薦閱讀: