07 黑馬程式設計師 char型別 型別說明符

2021-06-21 11:01:47 字數 2349 閱讀 8268

ascii單位元組表(雙位元組gbk\gb2312\gb18030\unicode)

*字元常量一定要用單引號括住,錯誤寫法:

char c = a;

char c = "a";「a」是字串常量

其實字元有2種型別:單位元組字元和雙位元組字元。

1個字元型變數只占用1個位元組,所以1個字元型變數只能儲存1個單位元組字元。錯誤寫法:

char c = 'abcd';

在記憶體中,1個漢字需要用2個位元組來儲存,而1個字元型變數只占用1個位元組的儲存空間,所以字元型變數不能用來儲存漢字。錯誤寫法:

char c = '

男';

在-128~127範圍內,可以當做整數來用

printf(「%d」, 『a』);

printf(「%c」, 68);

轉義字元

意義

ascii碼值\n

將當前位置移到下一行開頭(回車換行)

10\t

跳到下乙個tab位置9\\

代表乙個反斜線字元

92\'

代表乙個單引號字元

39\"

代表乙個雙引號字元

34\0

空字元0

*c語言允許我們給int型別的變數加一些說明符,某些說明符可以增大int型別變數的長度,這樣的話,int型別變數能儲存的資料範圍就變大了。

*c語言提供了以下4種說明符,4個都屬於關鍵字:

100l和100ll和100的區別

long和long long的輸出

不同型別所占用的儲存空間

1> short和long可以提供不同長度的整型數,也就是可以改變整型數的取值範圍。在64bit編譯器環境下,int占用4個位元組(32bit),取值範圍是-231~231-1;short占用2個位元組(16bit),取值範圍是-215~215-1;long占用8個位元組(64bit),取值範圍是-263~263-1

2> 總結一下:在64位編譯器環境下,short佔2個位元組(16位),int佔4個位元組(32位),long佔8個位元組(64位)。因此,如果使用的整數不是很大的話,可以使用short代替int,這樣的話,更節省記憶體開銷。

3> 世界上的編譯器林林總總,不同編譯器環境下,int、short、long的取值範圍和占用的長度又是不一樣的。比如在16bit編譯器環境下,long只占用4個位元組。不過幸運的是,ansi \ iso制定了以下規則:

* short跟int至少為16位(2位元組)

* long至少為32位(4位元組)

* short的長度不能大於int,int的長度不能大於long

* char一定為為8位(1位元組),畢竟char是我們程式設計能用的最小資料型別

4> 可以連續使用2個long,也就是long long。一般來說,longlong的範圍是不小於long的,比如在32bit編譯器環境下,long long占用8個位元組,long占用4個位元組。不過在64bit編譯器環境下,long long跟long是一樣的,都占用8個位元組。

5> 還有一點要明確的是:short int等價於short,long int等價於long,long longint等價於long long

long和int都能夠儲存整型常量,為了區分long和int,一般會在整型常量後面加個小寫字母l,比如100l,表示long型別的常量。如果是long long型別呢,就加2個l,比如100ll。如果什麼都不加,就是int型別的常量。因此,100是int型別的常量,100l是long型別的常量,100ll是long long型別的常量。

1> 首先要明確的:signed int等價於signed,unsigned int等價於unsigned

2> signed和unsigned的區別就是它們的最高位是否要當做符號位,並不會像short和long那樣改變資料的長度,即所佔的位元組數。

l   signed:表示有符號,也就是說最高位要當做符號位,所以包括正數、負數和0。其實int的最高位本來就是符號位,已經包括了正負數和0了,因此signed和int是一樣的,signed等價於signed int,也等價於int。signed的取值範圍是-231 ~231 - 1

l   unsigned:表示無符號,也就是說最高位並不當做符號位,所 以不包括負數。在64bit編譯器環境下面,int占用4個位元組(32bit),因此unsigned的取值範圍是:0000 0000 0000 0000 0000 0000 0000 0000 ~ 1111 1111 11111111 1111 1111 1111 1111,也就是0 ~ 232 - 1

黑馬程式設計師 型別轉換

一 隱式轉換,從型別a到型別b的轉換可以在所有情況下進行,執行轉換的規則非常簡單,可以讓編譯器執行轉換。參與運算 算數運算和賦值運算 的運算元和結果型別必須一致。當不一致時,如兩種型別相容且目標型別大於原型別時,系統自動完成型別轉換,在自動轉換中是不會丟失精度的。二 顯式轉換,從型別a到型別b的轉換...

黑馬程式設計師 型別轉換

每個函式都可以強制將乙個表示式轉換成某種特定資料型別。自動 隱式 型別轉換不會導致資料丟失。資料型別在資料結構中的定義是乙個值的集合以及定義在這個值集上的一組操作。變數是用來儲存值的所在處 它們有名字和資料型別。變數的資料型別決定了如何將代表這些值的位儲存到計算機的記憶體中。在宣告變數時也可指定它的...

黑馬程式設計師 值型別與引用型別

asp.net android ios開發 net培訓 期待與您交流!值型別 如果資料型別在它自己的記憶體分配中儲存資料,則該型別是值型別。所有數字 資料型別 bool char date 所有結構,即使其成員為引用型別 列舉 引用型別 包含指向儲存資料的其他記憶體位置的指標。string 所有陣列...