觀眾老爺好,今天講的是變量是什么?,變量是怎么吃的呢?下面我們一起走進編程的大門里,為觀眾老爺一一交代,請觀眾老爺端杯茶水拿瓶飲料和零食邊喝邊吃邊看。
在《編程是什么?》里我們講到程序是由算法和數據結構組成的,而算法其實就是數學里的加減乘除以及邏輯判定組成,數據結構是數據建模(把物體用數據的形式記錄和表達出來,可以是有規律的,也可以是散列),把一個事物數據化表達,比如我們面對一個物體它最基本的作用和屬性,而物體的屬性比如長寬高,我們在記錄時給長寬高起一個特別的名稱,這個名稱就是變量名。那為何叫變量呢?下面會給觀眾老爺介紹!
同樣面對一個長方體(觀眾老爺這里別埋怨小編,真實是長方體太方便了,其實是小編想偷懶),我們要把長寬高進行數據值記錄下來,下面用偽代碼描述一下:
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會直接讀取變量內存空間里存放的數據,在程序運行期間,變量內存空間的數值是可以被改變的。許多游戲外掛就是用了這種原理。當然這里只是介紹,詳細外掛制作觀眾老爺還是不要問我了。小編是個安分守法的良民。
這時分估計觀眾老爺還有許多疑問,變量里的數據在內存中是如何存放的呢?觀眾老爺不要著急,后面會一一介紹,觀眾老爺記得珍藏點贊,你的支持就是我的動力!下期再會!!
評論前必須登錄!
立即登錄 注冊