1. 程式人生 > >第三章 資料和C (知識點彙總)

第三章 資料和C (知識點彙總)

getchar()函式讀取下一個輸入字元,因此程式會等待使用者輸入,即出現所謂的“暫停”,使得程式執行結果可以停留在頁面上,便於觀察。

資料型別關鍵字,根據計算機儲存的方式不同,可分為兩大基本型別:整數(沒有小數部分的數)和浮點數(有小數部分的數,計算機把浮點數分為整數部分和指數部分分開儲存著兩部分)

整數沒有小數部分,浮點數有小數部分

浮點數可以表示的範圍比整數大,但是浮點數比整數運算慢

轉換說明(說明資料的顯示方式,而不是儲存方式)
十進位制顯示數字,使用**%d**
八進位制顯示數字,使用**%o**
十六進位制顯示數字,使用**%x**
(要顯示各進位制的字首0、0x,必須分別使用%#o、%#x)

char ≤ short ≤ int ≤ long ≤ long long

int————————————————————%d
short int(=short)——%hd(十進位制)%ho(八進位制)%hx(十六進位制)
long int(=long)——%ld(十進位制)%lo(八進位制)%lx(十六進位制)
long long int(=long long)——%lld(有符號)%llu(無符號)
unsigned int(=unsigned)——————%u

h,l字首都可以和u一起使用,用於表示無符號型別

char型別用於儲存字元(如字母或標點符號),但是從技術層面上看,char是整數型別,因為char型別實際上儲存的是整數而不是字元(計算機使用數字編碼來處理字元,即用特定的整數表示特定的字元,美國最常用的編碼是ASCII編碼)
printf()函式用%c指明待列印的字元。但是一個字元變數實際上被儲存為1位元組的整數值,因此如果用%d轉換說明列印char型別變數的值,列印的是一個整數,而%c轉換說明告訴printf()列印該整數值對應的字元。

char grade=‘A’————√ 用單引號括起來的單個字元被稱為字元常量

轉義序列:
\a——警報
\b——退格
\f——換頁
\n——換行
\r——回車
\t——水平製表符
\v——垂直製表符
\——反斜槓
'——單引號
"——雙引號
?——問號
\0oo——八進位制值(每個o可表示0~7中的一個數)
\xhh——十六進位制值(每個h可表示0~15中的一個數)

可移植型別:
int32_t ——整數型別寬度正好是32位
int_least32_t——整數型別寬度至少是32位
int_fast32_t——使計算達到最快的整數型別寬度
int_max_t——最大的有符號整數的型別

C語言的浮點型別有float,double,long double:


**float:**必須至少能表示6位有效數字,且取值範圍至少是10-37------1037
**double:**意為雙精度,和float型別的最小取值範圍相同,但至少必須能表示13位有效數字
**long double:**以滿足比double型別精度更高的要求,不過c只保證long double型別的精度至少和double型別的精度相同

沒有後綴的浮點型常量預設為double型別,但在浮點數後面加上f或F可以覆蓋預設設定,編譯器會將浮點型常量看成float型別。
例:
2.3——double型
2.3f——float型

P計數法(C99標準新增的一種新的浮點型常量格式——用十六進位制表示浮點型常量):
例:0xa.1fp10
在這裡插入圖片描述

printf()函式使用 %f 轉換說明列印十進位制計數法的float和double型別浮點數,用 %e 列印指數計數法的浮點數,用 %a 列印十六進位制格式的浮點數(比如P計數法)

NaN(not a number)
Inf(infinity)

sizeof是C語言的內建運算子,以位元組為單位給出制定型別的大小,C99和C11提供 %zd 轉換說明匹配sizeof的返回型別。

0x44、oxAA——————unsigned int————%x
0x5.b6p12————————float————————%a