一、內(nèi)存和尋址概述
可編程設(shè)備包含微處理器和一定數(shù)量的臨時(shí)存儲(chǔ)空間。臨時(shí)存儲(chǔ)器被稱為隨機(jī)存取存儲(chǔ)器(RAM)。
RAM類似于宿舍里成排存物柜的存儲(chǔ)區(qū)域,每個(gè)存物柜都有編號(hào),即地址。要訪問特定的內(nèi)存單元,需要使用指令要求處理器從這里獲取值或?qū)懭胫怠?/p>
微處理器負(fù)責(zé)執(zhí)行應(yīng)用程序,并從RAM中獲取要執(zhí)行的應(yīng)用程序以及相關(guān)聯(lián)的數(shù)據(jù),包括了顯示到屏幕上的數(shù)據(jù)和用戶輸入的數(shù)據(jù)。
二、變量
顯式地指定用于存儲(chǔ)的內(nèi)存單元的地址,如578,容易出錯(cuò),因此產(chǎn)生了變量。
1.聲明變量
variable_type variable_name;
variable_type variable_name= initial_value;
變量類型向編譯器指出了變量可存儲(chǔ)的數(shù)據(jù)的性質(zhì),變量名替代了變量值在內(nèi)存中的存儲(chǔ)地址。
可聲明并初始化多個(gè)類型相同的變量。
如:int FirstNumber=0,SecondNumber=0,Multiplication=0;
可在開頭聲明變量,也可在需要時(shí)再聲明變量。
#include <iostream> using namespace std; int main(){ cout << "----兩數(shù)相乘----" <<endl; cout << "輸入第一個(gè)數(shù)字:"; int FirstNumber = 0; cin >> FirstNumber; cout << "輸入第二個(gè)數(shù)字:"; int SecondNumber = 0; cin >> SecondNumber; int MultiplicationResult = FirstNumber * SecondNumber; cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; return 0; }
程序中聲明了FirstNumber和SecondNumber變量,用于臨時(shí)存儲(chǔ)用戶輸入的數(shù)字;
通過設(shè)置變量,程序員可以使用對(duì)人類明了的名稱,把將變量關(guān)聯(lián)到地址以及創(chuàng)建RAM訪問指令的工作留給編譯器做。
注:a、變量名可包含字母和數(shù)字,但不能以數(shù)字開頭,變量名不能包含空格和算數(shù)運(yùn)算符,可使用下劃線,不能是保留的關(guān)鍵字(如return)。
b、存儲(chǔ)在變量中的數(shù)據(jù)被存儲(chǔ)在內(nèi)存中。
2.變量的作用域
2.1 局部變量
#include <iostream> using namespace std; void MultiplyNumber(){ cout << "----兩數(shù)相乘----" <<endl; cout << "輸入第一個(gè)數(shù)字:"; int FirstNumber = 0; cin >> FirstNumber; cout << "輸入第二個(gè)數(shù)字:"; int SecondNumber = 0; cin >> SecondNumber; int MultiplicationResult = FirstNumber * SecondNumber; cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; } int main(){ //調(diào)用函數(shù) MultiplyNumber(); return 0; }
注意:不能在函數(shù)MultiplyNumber()外調(diào)用FirstNumber和SecondNumber變量,因?yàn)檫@些變量的作用域是局部的,即從聲明它的語句開始到當(dāng)前函數(shù)的末尾。
函數(shù)結(jié)束后,將銷毀所有局部變量,并歸還它們占用的內(nèi)存。
不同函數(shù)中聲明的變量為獨(dú)立的實(shí)體,名稱可相同,但作用域不同。
2.2 全局變量
#include <iostream> using namespace std; //全局變量 int FirstNumber = 0; int SecondNumber = 0; int MultiplicationResult=0; void MultiplyNumber(){ cout << "----兩數(shù)相乘----" <<endl; cout << "輸入第一個(gè)數(shù)字:"; cin >> FirstNumber; cout << "輸入第二個(gè)數(shù)字:"; cin >> SecondNumber; MultiplicationResult = FirstNumber * SecondNumber; cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; } int main(){ //調(diào)用函數(shù) MultiplyNumber(); cout<< FirstNumber << "X" << SecondNumber <<"="<< MultiplicationResult << endl; return 0; }
在函數(shù)外部聲明的變量為全局變量。
雖然MultiplicationResult的值在MultiplyNumber()中獲得,但仍可在main()中使用。
3.c++變量類型
3.1、bool布爾類型
true和false
直接賦值:
如bool A=false;
結(jié)果為布爾類型值的表達(dá)式:
bool D=(User=="yes");
3.2 char字符型
char UInput="Y";
注:表示內(nèi)存空間容量大小的單位是位和字節(jié)。位的取值為0或1;字節(jié)可以包含字符的數(shù)字表示。
示例中使用字符數(shù)據(jù)時(shí),編譯器把字符轉(zhuǎn)換成可存儲(chǔ)到內(nèi)存中的數(shù)字表示。“Y”的ASCⅡ碼為89,因此編譯器在分配給UInput的內(nèi)存空間中存儲(chǔ)89.
4.常量
定義常量后,就不能修改它的值。
與變量一樣,常量占用內(nèi)存空間,并使用名稱標(biāo)識(shí)為其預(yù)留的空間的地址,但不能覆蓋該空間的內(nèi)容。
總結(jié)
為何給變量賦初值?
有時(shí)候,需要根據(jù)變量的值做條件處理,未賦值的變量包含的內(nèi)容是隨機(jī)的。
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!
原文鏈接:https://blog.csdn.net/weixin_45761545/article/details/120863893