字元型資料
字元常量:
用單引號括起來的字元,如:'a' , '#' , '%' , 'd' 。(注:區分大小寫)
如果把字元型資料用整型的輸出方式輸出,將輸出其ascii碼值,如果把字元型資料用來做整型運算,將用其ascii碼值進行運算。
示例**:
#include #include #include /*
這個程式用來測試字元型資料和整型資料的轉換輸出
*/int main()
結果:
解析:1.字元型資料可以當做整型來用,整型也可以當做字元型來用。他們的轉換基於ascii碼。
附ascii碼表:
解析:
1.十進位制列即十進位制ascii碼。
2.ascii碼0~31都為格式控制符號。
3.ascii碼表中:a~z是從65開始的連續的26個值。a~z是從97開始的連續的26個值。
4.高-低四位是先看高四位,後看低四位的。如a的二進位制表示為高四位的0100+低四位的0001。而他的十六進製制表示為高四位的4+低四位的1。
5.ascii碼儲存最高為0~127,只能佔7位。所以字元型資料只需要乙個位元組即可儲存
(乙個位元組實際上有8位,所以我們把用於儲存
字元型資料的位元組的最高位固定為0)
6.字元型分為有符號([signed] char)的和無符號(unsigned char)的區別如下:
字元型資料
型別識別符號
位元組範圍
備註[signed] char
1-128~127
[-2^7,((2^7)-1)]
unsigned char
10~255
[0,((2^8)-1)]
字元型資料的輸入,輸出
1.scanf()和printf()
2.getchar()和putchar()
**:
#include #include /*
這個程式用來測試字元型資料的幾種輸入方法
*/int main()
結果:
解析:
1.putchar()和getchar()的作用和常用的scanf()和printf()相差不大。
2.putchar()括號裡的引數是int,所以裡面可以放int型和char型的資料。並將它們統一解析成ascll碼對應的字元輸出。
3.fflush(stdin)是用來清空標準輸入快取區的。因為在第一次輸入字元型資料之後,我們一般用單擊enter鍵輸入乙個換行符來結束輸入。所以這個時候輸入快取區中的情況是:
[你輸入的字元][\n]所以scanf("%c",&c)會把你輸入的字元取出並賦值給c。但注意用於結束輸入的換行符是仍然留存在輸入快取區里的!所以當執行到ch=getchar()時,會直接把\n作為第二個輸入字元賦值給ch!
為了避免這種情況,我們在第一次scanf()從快取區得到需要的資料之後,使用fflush(stdin)來清空整個標準輸入快取區的資料,以保證getchar能正確的得到我們希望放入其中的資料。
(此外還有fflush(stdout)用於清空標準輸出快取區。但此處沒有用到。)
轉義字元
所有的轉義字元和所對應的意義
轉義字元
意義ascii碼
\a響鈴(bel)7\b
退格(bs),將當前位置移到前一列8\f
換頁(ff),將當前位置移到下頁開頭
12\n
換行(lf),將當前位置移到下一行開頭
10\r
回車(cr),將當前位置移到本行開頭
13\t
水平製表(ht)(跳到下乙個tab位置)9\v
垂直製表(vt)
11\\
代表乙個反斜線字元''\'
92\'
代表乙個單引號(撇號)字元
39\''
代表乙個雙引號字元
34\0
空字元(null)
0\ddd
1~3位八進位製所代表的任意字元
三位八進位制
\xhh
1~2位十六進製製所代表的任意字元
二位十六進製制
**示例1:
#include #include /*
這個程式用於測試轉義字元的使用
*/int main()
結果1:
解析1:
1.\t會自動將順序輸出的數字排序整齊。如圖中所示。
2.\t代表若干空格(一般是8個)
3.\n代表換行
**示例2:
#include #include /*
這個程式用來測試一些轉移字元的作用。
*/int main()
結果2:
漢字編碼初步
因為漢字的數量遠大於英文本母,所以漢字在計算機中使用兩個位元組儲存。
為了區別與英文,避免乙個漢字的兩個位元組被解析成兩個英文本母。漢字的二進位制儲存中這兩個位元組的最高位都為1
(英文的二進位制儲存中位元組最高位為0)
示例:當我們編寫如下圖這樣乙個程式時,我們把第7行結尾的分號換成漢字的分號
結果在編譯中出了錯誤,並且錯誤提示有兩行。分別是"\243"和"\273"如果我們把這兩個字元轉成二進位制,會發現其實他們的最高位都是1。這說明在這個地方出現的漢字,被當成了兩個英文解析。
字串如:"abc" "hello!"
都是字串(由多個字元連線成)
字串的儲存是通過儲存連續的字元,並在結尾加\0來表示結束。
如:"abc"雖然只有三個字元,但這個字串卻要占用四個位元組,因為這個字串在儲存時除了儲存abc這三個字元之外,還需要在abc後面單獨儲存乙個\0來代表這個字串已經結束。
注: 1.編譯系統時,會自動在乙個字串的結尾加上\0來作為字串結束標誌。
2.'\0'不是字串的一部分,他只作為字串的結束標識(如printf("abc");只會輸出abc而不會輸出'\0')。
3.空字串 如:"" 占用乙個位元組。
學習筆記 泛型
object型別引數有2個問題 1 裝箱拆箱,效能損耗 傳入乙個int值 棧 object又在堆裡面,如果把int傳遞進來,就會把值從棧裡面copy到堆裡 使用的時候,又需要用物件值,又會copy到棧 拆箱 2 型別安全問題,可能會有,因為傳遞的物件是沒有限制的 泛型方法與普通方法效能一致,還能乙個...
泛型學習筆記
泛型是 2.0 版 c 語言和公共語言執行庫 clr 中的乙個新功能。泛型將型別引數的概念引入 net framework,型別引數使得設計如下類和方法成為可能 這些類和方法將乙個或多個型別的指定推遲到客戶端 宣告並例項化該類或方法的時候。例如,通過使用泛型型別引數 t,您可以編寫其他客戶端 能夠使...
筆記 浮點型資料
浮點數 floating point number 就是實數 real number 浮點數有兩種表示形式 1 十進位制小數形式。它由數字和小數點組成。0.123 123.123.0 0.0都是十進位制小數形式。2 指數形式。如123e3或123e3都代表123 103。注意字母e或e之前必須有數字...