在c語言中,資料型別指的是用於宣告不同型別的變數或函式的乙個廣泛的系統。c語言資料型別可以分為四種:
本節內容主要學習的是基本型別,以及簡單的介紹一下void型別。其他的型別在後續的章節中,將會慢慢的接觸到,不用太擔心。
int型別,就是沒有小數的部分,比如2、500、0、-100。
用法如下:
int timohp = 586;//timo的血量是586;
char型別用於存放乙個字元,值用兩個單引號''來表示 (雙引號表示字串)。程式語言通過使用字母的數值編碼來解決字母的儲存,因此char型別是另一種整型。字符集的字元用數值編碼(ascii碼)表示。例如,字元'a'的編碼是65,字元'b'的編碼是66。
用法如下:
//char 只能存放乙個字元,超過乙個字元就會產生編譯錯誤
char c = 'a';
char c1 = '蓋';
char c2 = '倫';
在計算中,bool變數的值可以是true或false。我們經常將非零值解釋為true,將零解釋為false。舉乙個簡單的例子,我們可以這樣編寫語句:
bool timolive = true;
字面值true和false都可以通過提公升型別轉換為int型別,true被轉換為1,而false被轉換為0:
int timolive = true;//stick的值是1
int timokill = false;//egg的值是0
另外,任何非零值都可以轉換為true,而非零被轉換為false:
bool timohp = 586;//timohp的值是true
bool timospeed = -10;//timospeed的值是true
bool timoattack = 0;//timoattack的值是false
浮點數能夠表示帶小數部分的數字,它們的表示範圍也更大。浮點數在計算機中的儲存分兩部分,一部分表示值,另一部分用於對值進行放大或縮小。舉個簡單的例子來幫助大家理解計算機中的浮點數,比如說過情人節了,我們給女朋友發個紅包表示一下心意。我們需要表示的數額分別是13.14和1314,它們除了小數點的位置不同外,其他都是相同的(幫你們找了乙個極好的藉口)。至少計算機是這樣看的,至於女朋友怎麼看~~~在計算機中,第乙個數可以表示為0.1314(基準數)和100(縮放因子),第二個數可以表示為0.1314(基準數)和10000(縮放因子)。縮放因子的作用就是移動小數點的位置,這其實也是浮點數術語的**。計算機中的實際表示其實不是這樣的十進位制,而是基於二進位制,這裡我們簡單的明白這個原理就行了。
浮點數的書寫方法有兩種,一種是我們使用的標準小數點表示法:
3.14
5.00.52
第二種是e表示法:
3.14e+2
1.26e-4
5e6-20.18e10
3.14e+2
上面的數字就是e表示法,比如說3.14e+3,這裡的意思是3.14的小數點向右移動3位。其中前面的符號位可以是正號(+)或者負號(-),小數點也是可選的,可以使用e或者e,後面的符號可以是+、-或者省略,後面的數字代表移動的位數。
浮點數根據範圍和精度不同分為兩種:單精度浮點數(float)和雙精度浮點數(double)。一般來說,處理單精度浮點數的速度比處理雙精度浮點數快。
簡單的用法如下:
float timoarmor = 150.7; //timo的護甲是150.7,檢視vs中armor實際的值可以看到是150.699997
double timoattackspeed = 0.865;/*timo的攻擊速度是0.865,檢視vs中attackspeed實際的值可以看到是0.86499999999999999*/
與整數相比,浮點數有兩大優點。第乙個是浮點數可以表示整數之間的值,可以表示小數。第二個是浮點數的表示範圍比整數大的多。浮點數也有兩個缺點,乙個是浮點數運算的速度通常比整數慢,而且精度將降低。下面通過乙個簡單的程式來說明:
float a = 3.14e+22;
float b = a + 1.0;
該程式定義乙個float型別a,然後b是a+1,試問執行程式b-a是多少?我們認為結果應該為1,但是在我們程式執行結果中,b-a將會是0。產生這個問題的原因就是3.14e+22是乙個小數點左邊有23位的數字,加上1,就是在第23位加1,但是float型別只能表示8位數字有效,因此對這個值不會有任何影響。
void的意思是「無型別」,表示函式沒有返回值以及對函式引數做限定。這裡如果不理解的話,可以先看看就好了,以後講到函式就懂了。如果不用void,比如用int或者別的,則函式需要有返回值。void就是不需要結果,否則如int、char等,就必需返回乙個與其對應的資料才能編譯通過。void不能用來定義變數,讓我們試著來定義:
void a;
這個語句編譯時會出錯。不過,即使編譯不會出錯,它也沒有任何實際意義。
總結一下,本節內容主要介紹了c語言程式的基本資料型別。介紹了基本型別的整數型別和浮點型別,以及簡單的講解了void型別。整數型別又包括int型、char型、bool型,浮點型別又包括單精度浮點數(float)和雙精度浮點數(double)。
3-1 下面的程式,第一處i的值是什麼?第二處i的值是什麼?
char ch = 'a';
int i = ch;//第一處i
ch = ch + 1;
i = ch;//第二處i
3-2 編寫乙個程式,對蓋倫的屬性值,找到合適的型別來定義。
名字:簡稱為g
生命值:455
移動速度:340
攻擊速度:0.625
攻擊範圍:125
生命回覆:8.25
攻擊力:59.5
Shell 入門教程(六) 基本資料型別
shell 語言是一門弱型別的語言,它並沒有資料型別上的概念。無論你輸入的是字串 數字,在 shell 中都按照字串型別來儲存。至於具體是什麼型別,shell 根據上下文去確定。例如下面當你嘗試對乙個字串進行加一操作時,shell 執行時便會報錯。bin bash num hello echo ex...
C語言基本資料型別
2.各種資料型別介紹 2.1整型 整形包括短整型 整形和長整形。2.1.1短整形 short a 1 2.1.2整形 一般佔4個位元組 32位 最高位代表符號,0表示正數,1表示負數,取值範圍是 2147483648 2147483647,在記憶體中的儲存順序是地位在前 高位在後,例如0x12345...
C語言基本資料型別
1.資料型別可以理解為固定記憶體大小的別名 c語言誕生之前的彙編時代,在低端的機器語言裡面沒有資料型別的概念,如何操作記憶體呢?當然我們知道記憶體的起始位址和記憶體大小,就可以操作這段記憶體了。然而在程式設計過程中,我們發現經常用到1個位元組,2個位元組和4個位元組的記憶體。我們每次呢都會去記這個2...