C primer plus自用知識點整理(第二章+第三章)概述、變量、基本數據類型等

最近在看C primer plus(加深鞏固自己的C語言技巧,爲以後學習C++打個基礎)。
裏面知識針對自己以後要查的點整理出來。
使用工具:visual studio 2013

第二章 iso c關鍵字

在這裏插入圖片描述

第三章

scanf()函數和scanf_s()函數

當採用scanf函數時,vs報錯:

error C4996: 'scanf': This function or variable may be unsafe.
       Consider using scanf_s instead. To disable deprecation, use
       _CRT_SECURE_NO_WARNINGS. See online help for details

在這裏插入圖片描述
教材裏用的scanf(),其實在目前Visual Studio版本中已經棄用了,用scanf_s()函數代替了.
scanf() 函數是格式化輸入函數,它從標準輸入設備(鍵盤) 讀取輸入的信息。其調用格式爲:scanf("<格式化字符串>",<地址表>)。
scanf_s() 的功能雖然與scanf() 相同,但卻比 scanf() 安全,因爲 scanf_s() 是針對“ scanf()在讀取字符串時不檢查邊界,可能會造成內存泄露”這個問題設計的。scanf_s()用於讀取字符串時,必須提供一個數字以表明最多讀取多少位字符,以防止溢出。
原因參考:scanf_s()使用技巧
鍵盤響應輸入的問題(轉自上面原因參考)
第一種情況:
當我們scanf_s("%d%d%d",a,b,c);
如果你在鍵盤上輸入了1 2 3(1空格2空格3),那麼第一個空格就被當作字符了。要用回車,用回車,用回車。
第二種情況:
當我們scanf_s("%d,%d,%d",a,b,c);
這個時候我麼就需要用逗號隔開,比如想給a輸入1,b輸入2,c輸入3。鍵盤的按鍵順序就是:1 逗號 2 逗號 3 Enter(逗號代表逗號鍵)。

getchar()函數

1、從緩衝區讀走一個字符,相當於清除緩衝區
2、前面的scanf()在讀取輸入時會在緩衝區中留下一個字符’\n’(輸入完s[i]的值後按回車鍵所致),所以如果不在此加一個getchar()把這個回車符取走的話,gets()就不會等待從鍵盤鍵入字符,而是會直接取走這個“無用的”回車符,從而導致讀取有誤
3、getchar()是在輸入緩衝區順序讀入一個字符(包括空格、回車和Tab)
參考:getchar()函數

數據類型關鍵字

在這裏插入圖片描述在這裏插入圖片描述

位、字節、字;整數、浮點數;進制;printf()函數

最小存儲單位:位(bit)。1字節=8bit。
字是設計計算機時給定的自然存儲單位。計算機的字長越大,其數據轉移越快,允許的內存訪問也更多。
計算機以二進制數字儲存整數;計算機把浮點數分成小數部分和指數部分來表示。
int 16位 取值範圍:-32768~32767;
int 16位或32位,可以用sizeof(int);sizeof是一個操作符,其作用是返回一個對象或數據類型所佔的字節數
用sizeof函數對變量數據所佔字節數進行測量
在這裏插入圖片描述

		printf("Type int has a size of %d bytes.\n", sizeof(int));
		printf("Type char has a size of %d bytes.\n", sizeof(char));
		printf("Type long has a size of %d bytes.\n", sizeof(long));
		printf("Type long long has a size of %d bytes.\n",
			sizeof(long long));
		printf("Type double has a size of %d bytes.\n",
			sizeof(double));
		printf("Type long double has a size of %d bytes.\n",
			sizeof(long double));

在這裏插入圖片描述
C語言未定義有符號類型的溢出規則。 例如16位unsigned int爲0~65535;
16位的int爲-32768~32767;
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

十六進制表示:0x51=十進制數81
八進制表示:020=十進制數16
printf()函數的參數數目不定,使用printf()函數時,要確保轉換說明的數量與待打印的數量相等。
十進制顯示:%d;
十六進制顯示:%x;
八進制顯示:%o;
若顯示八進制或十六進制的前綴0、0x、0X,則使用%#o,%#x,%#X。
對於long類型,使用l (L的小寫)前綴
%u:對應unsigned int類型;%ld:表示long int類型。%lx、%lo等long 十六進制、八進制。
對於short類型,使用h (H的小寫)前綴
%hd%hx%ho等。


%m.nf
m爲指定的輸出字段的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
n爲保留n位小數


在這裏插入圖片描述

VS中 多行註釋的快捷鍵

在這裏插入圖片描述

char、轉義序列

採用ASCII編碼:字母A實際存儲整數65.
C語言把1字節定義爲char類型佔用的位數。
char 爲1個字節,8個位。
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
標準ASCII表:
在這裏插入圖片描述
顯示字符類型程序:
例如顯示94的^:代碼爲

printf("s\x5E\n");/*\x00見轉義序列*/

結果
在這裏插入圖片描述

_BOOL類型

1位存儲空間。

float double和long double

在這裏插入圖片描述在這裏插入圖片描述
浮點數float佔用32位,8位表示指數的值和符號。24位表示非指數部分及其符號。
float精度爲小數點後6位有效數字。
在這裏插入圖片描述
double爲64位。
long double的精度至少與double精度相同。
在這裏插入圖片描述
打印浮點值:
%f:打印十進制計數法;
%e:打印指數法的浮點數;
%a:打印十六進制格式的浮點數
%Lf、%Le、%La;


詳情 第四章學習內容


在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

雙引號“”內容/刷新輸出

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

本章小結

在這裏插入圖片描述


2020-01-02 2020年新的一年,再接再厲。加油加油!!!


發佈了43 篇原創文章 · 獲贊 23 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章