變量是什麼?

變量是什麼?

觀眾老爺好,今天講的是變量是什麼?,變量是怎麼吃的呢?下面我們一起走進編程的大門裡,為觀眾老爺一一交代,請觀眾老爺端杯茶水拿瓶飲料和零食邊喝邊吃邊看。

在《編程是什麼?》裡我們講到程序是由算法和數據結構組成的,而算法其實就是數學裡的加減乘除以及邏輯判斷組成,數據結構是數據建模(把物體用數據的形式記錄和表達出來,可以是有規律的,也可以是散列),把一個事物數據化表達,比如我們面對一個物體它最基本的作用和屬性,而物體的屬性比如長寬高,我們在記錄時給長寬高起一個特殊的名稱,這個名稱就是變量名。那為何叫變量呢?下面會給觀眾老爺介紹!

同樣面對一個長方體(觀眾老爺這裡別埋怨小編,實在是長方體太方便了,其實是小編想偷懶),我們要把長寬高進行數據值記錄下來,下面用偽代碼描述一下:

int sruct CubeMode { int long , int wide, int high} ; //建立一個整形長方體結構體,具備長寬高屬性

Int [] ModeA[3] ; //建立一個整形數組變量可以存放三個數據

ModeA = [5 3 12] ;//初始化數組變量

CubeMode CubeTwo ; //初始化一個長方體結構體變量

CubeTwo.long = ModeA[0];//將數組變量的第一個值賦予長方體結構體的長度變量

CubeTwo.wide = ModeA[1];//將數組變量的第二個值賦予長方體結構體的寬度變量

CubeTwo.high = ModeA[2];//將數組變量的第三個值賦予長方體結構體的高度變量

Int CubeVolumeB = CubeTwo.long * CubeTwo.wide * CubeTwo.high; //體積公式長x寬x高=長方體體積

Print(CubeVolumeB); //顯示輸出體積

變量是什麼?

上文偽代碼程序裡的sruct 是申明數據類型與《編程是什麼?》裡用的class一樣是把幾個變量封裝在一個數據結構裡,數據結構這裡不詳細介紹,觀眾老爺耐心等待,int是申明變量在內存以整形存放,int[]申明一塊數組形勢的內存,編程語言不同申明的變量所用的助記符也不一樣,具體要涉及到編程語言和IDE,這裡不一一列舉了,望觀眾老爺原諒。

變量是什麼?

當我們申名一個變量時,內存會分配一個內存空間,在未初始化時,這個內存空間裡存放的是0也可能是亂碼,也有可能是別的程序未刪除銷燬的數據,未初始化也是可以讀取的,當然這樣做對我們的程序來說健壯性比較低,程序有可能內存溢出,或者計算錯誤,所以在申明變量時最好第一時間初始化,或者直接填充0數據,當我們想用這個變量時可再次初始化,具體如下:

Int class Cube { int cuBeLong=0, int cuBeWide=0, int cuBeHigh=0}; //申明一個Cube類並初始化類結構體內整型變量cuBeLong,cuBeWide,cuBeHigh為0。

Int NumOne =5; //申明整形變量NumOne ,第一時間初始化為5。

Cube CubeOne ;//申明一個Cube類實例

Print(CubeOne.cuBeLong);//顯示輸出CubeOne的cuBeLong變量

Print(CubeOne.cuBeWide);//顯示輸出CubeOne的cuBeWide變量

Print(CubeOne.cuBeHigh);//顯示輸出CubeOne的cuBeHigh變量

//////會輸出三個0,當然這裡是偽代碼

CubeOne.cuBeLong = NumOne;//重新初始化CubeOne.cuBeLong賦值為NumOne內存當中的數值

CubeOne.cuBeWide = NumOne;//重新初始化CubeOne.cuBeWide賦值為NumOne內存當中的數值

CubeOne.cuBeHigh = NumOne;//重新初始化CubeOne.cuBeHigh賦值為NumOne內存當中的數值

Print(CubeOne.cuBeLong);//顯示輸出CubeOne的cuBeLong變量

Print(CubeOne.cuBeWide);//顯示輸出CubeOne的cuBeWide變量

Print(CubeOne.cuBeHigh);//顯示輸出CubeOne的cuBeHigh變量

//////會輸出三個5

NumOne=NumOne+3;//這裡不用C也不是C++為了表達清楚就進行詳細步驟,重新改變NumOne數值

CubeOne.cuBeLong = NumOne;//重新初始化CubeOne.cuBeLong賦值為NumOne內存當中的數值

NumOne=NumOne+3;//重新改變NumOne數值

CubeOne.cuBeWide = NumOne;//重新初始化CubeOne.cuBeWide賦值為NumOne內存當中的數值

NumOne=NumOne+3;//重新改變NumOne數值

CubeOne.cuBeHigh = NumOne;//重新初始化CubeOne.cuBeHigh賦值為NumOne內存當中的數值

Print(CubeOne.cuBeLong);//顯示輸出CubeOne的cuBeLong變量

Print(CubeOne.cuBeWide);//顯示輸出CubeOne的cuBeWide變量

Print(CubeOne.cuBeHigh);//顯示輸出CubeOne的cuBeHigh變量

//////最終輸出是8 11 14

觀眾老爺到這裡應該明白變量是什麼了吧,變量是可以改變的量,在程序開始運行時系統會給變量預留一塊內存空間,當調用變量時,CPU會直接讀取變量內存空間裡存放的數據,在程序運行期間,變量內存空間的數值是可以被改變的。很多遊戲外掛就是用了這種原理。當然這裡只是介紹,具體外掛製作觀眾老爺還是不要問我了。小編是個安分守法的良民。

變量是什麼?

這時候估計觀眾老爺還有很多疑問,變量裡的數據在內存中是如何存放的呢?觀眾老爺不要著急,後面會一一介紹,觀眾老爺記得收藏點贊,你的支持就是我的動力!下期再會!!

相關推薦

推薦中...