上一節講到了不能改變的 “常量”,但是,有些時候我們更需要相對靈活的,可以隨着條件改變的東西,於是,就有了一種叫變量的東西。
首先說明一點,程序運行的時候,無論是常量還是變量,甚至於程序的代碼(當然,不是我們寫出來的這些)都是在內存中的ps:這句話暫時能記住多少就記住多少吧
既然一個量是可以變化的,那麼它肯定不能使一個確定的實體 ,一個不錯的想法是 一個變量是一塊空間,然後這個變量代表的是這個空間裏面的東西。這樣子變量就可以 “變化”起來了。就像學校門口的保安室,我進去的時候那塊空間裏的東西就是我(不要糾結我是不是東西的問題),李雷進去的時候那塊空間裏的東西就是李雷,一條狗進去了的話那塊空間裏的東西就是一條狗 所以,那塊空間一直都叫“那塊空間”,只不過裏面的具體內容是可以變化的。這就是變量的大意。下面我們來看一個例子
void main(){
int a;
a = 3;
}
首先還是第一節的那段最簡單的代碼,然後這裏加了兩行。
日常敲黑板 : 這兩行也都是用分號結尾的,就像人說完一句話要有個句號表示一句話說完了,程序裏面也需要這麼表示一下,只不過這裏用的是分號(當然,程序裏不時所有的地方都要用分號結尾的)。
首先來看添加的第一行的a,這個a就是這個變量的名字,也就相當於上文中的“那塊空間”。
但是一塊空間只有名字也是不夠的,因爲無法確定它的大小,以及它裏面通常會放些什麼,於是,在空間名前面加了一個用來確定這塊叫a的空間通常放的東西的類型的 int,int 代表 整數類型,所以 int a;代表 我現在有一塊空間,這塊空間叫做a,這塊空間通常會放int(整數類型,比如1,2,3 帶小數點的比如1.1不行)類型的數據。上面我們提到了 變量是在內存裏面對,所以 int a;的意思是 聲明(就是告訴程序 有我這麼個東西了)一個叫a的變量,這個變量是int(整數類型)型的,所以裏面通常放的是整數。而這句話實際做的事情是 找計算機從內存中要了一塊空間,然後把這塊空間叫做a(這塊空間的位置不確定,大小根據前面的類型來,不同的類型要到的空間的大小也不同)。
所以 聲明一個變量的語法是 變量類型 變量名;
既然已經有了一個變量了,那麼就可以讓這個變量變起來了。於是 就有了下一句 a = 3;
其中 a 是剛剛那個變量(也就是那塊空間的名字) 代表着那塊空間中的內容 ‘='號 不是等於的意思,它的作用是把後面的值放到前面那個變量代表的空間中 所以,a=3;結束之後空間a 的內容就是3 了(當然,也可以把一個變量代表的值放到另一個變量裏 比如)
void main(){
int a;
a = 3;
int b;
b = a;
}
這裏就把a代表的值給了b 當然 a的值是不變的 也還是3 上面的例子變量類型是整數類型(int) 還有一些其它的變量類型 比如:
字符類型 char(一個英文字母或數字或符號 並用單引號包起來) 例:’a'
浮點數類型 float(帶小數點的數字)例:3.14
雙精度浮點型 double (比float表示的精度大小和精度更高一點的帶小數點的數字) 例 3.1415926
字符串類型 string(一串字,可以由中文或其它的組成,不侷限於字符,但是要用雙引號包住) 例:“止水” ps:如果用cout輸出字符串變量,需要在開頭加上#include <string>
具體用法同上面的整數類型(int)的例子
當然,一種類型的空間確定了,那麼,它的大小也就同時被確定了。上面提到的int,一般表示-2147483648~+2147483647之間的數字(當然不同編譯器以及不同系統的範圍可能不太一樣) ,如果想表示的值超過了這個範圍 那麼得到的值可能也是錯誤的。類似的 double float 等也都有固定的空間大小(以後會提到)
順路講點其它東西
鍵盤輸入 :和輸出到控制檯的類似,只是需要把cout變成cin 並且把<<的方向改變一下
例如
#include <iostream>
#include <string>
using namespace std;
void main(){
string a;
int b;
cin>>a>>b;
cout<<a<<endl<<b<<endl;
}
上面例子運行結果如下
注意:
正常的話運行這段程序,黑框框出來之後裏面是沒有字的。然後 用鍵盤輸入第一行的各個變量的值(第一行是用鍵盤輸入的,然後中間紅色框框的地方是個空格)
有時間可以試試 輸入一個名字,一個地名,一個月份,一個日期 然後 在控制檯上輸出 aa來自bb生日是c月d日
例:止水來自遼寧生日是6月20日