C語言學習隨筆

2021-10-10 20:23:11 字數 4417 閱讀 2158

學習c語言過程中的一些記錄,供以後查閱使用。

11月25日學習記錄

1.include指令和標頭檔案

#inlcude
(1) #include的作用相當於把stdio.**件中的所有內容都輸入該行所在的位置,實際上,這是一種"拷貝-貼上"的操作。

(2) #include是一條c預處理指令,通常,c編譯器會在編譯前對源**做一些準備工作,即預處理

(3) stdio.h是標準輸入/輸出標頭檔案

2.宣告

int num;
(1) 這行**叫作宣告,程式進行編譯時,編譯器會在計算機記憶體中為變數num預留儲存空間。

(2) int是c語言的關鍵字,num是乙個識別符號

3.識別符號命名規則

(1) 使用小寫字母、大寫字母、數字和下劃線命名

(2) 識別符號的第乙個字元必須是字母或下劃線,不能是數字。

4.精確控制輸出

(1) %.2f指定輸出的浮點數只顯示小數點後面兩位。

5.位 位元組

(1)位(bit):計算機最小儲存單元,儲存0或1

(2)位元組(byte):常用計算機儲存單位,1位元組 = 8 位

6.進製數

(1)十六進製制數:0x或0x字首表示十六進製制數,十進位制數16表示成十六進製制是0x10或0x10

(2)八進位制數:0字首表示八進位制數,十進位制數16表示成八進位制是020

(3)十六進製制數的每一位的數恰好是由4位二進位制數表示,例如,十六進製制數3是0011,十六進製制數5是0101,則十六進製制數35是00110101,十六進製制數53是01010011

7.進製數的顯示

以十進位制顯示數使用%d,以八進位制顯示數數使用%o,以十六進製制顯示數使用%x。另外,要顯示八進位制數的字首0,十六進製制數的0x或0x必須使用%#o、%#x,%#x。

#include

intmain

(void

)

**執行結果:

x =

100, x =

144, x =

64x =

100, x =

0144

, x =

0x64

, x =

0x64

8.浮點數float double

(1)單精度浮點數float:至少精確表示小數點後6位有效數字,通常,系統儲存乙個float型浮點數要占用32位,其中八位用於表示指數的值和符號,剩下24位用於表示非指數部分及其符號。

(2)雙精度浮點數double:至少可以表示小數點後10位有效數字,double占用64位,一些系統將多出來的32位全部用來表示非指數部分,另一些系統把其他的位分配給指數部分。

(3) c語言預設浮點數的型別是double型,若要表示float型可在浮點數後面加上f或f,例如3.2f和9.11e9f。

(4) 列印使用十進位制計數法的float型浮點數和double型浮點數分別使用%f和%lf,列印指數計數法的浮點數使用%e和%le。

9.浮點值的上溢和下溢

(1)上溢(overflow):假設系統的最大float型別值是3.4e38,**

float toobig =

3.4e38

*100.0f

;

此時toobig的數值超過了當前型別所能表達的最大範圍,發生上溢。

(2)下溢(underflow):以十進位制數為例,0.1234e-10除以10得到的結果是0.0123e-10,雖然得到了結果,但是在計算過程中損失了原末尾有效位上的數字,發生了下溢。

10.記憶體容量度量函式sizeof()

(1) sizeof的功能是以位元組為單位給出指定型別的大小,c99和c11提供%zd轉換說明匹配sizeof的返回型別。

(2) 使用sizeof()函式時,當運算物件是型別時,圓括號必不可少;對於特定量,圓括號可有可無; 也就是說,對於型別,應寫成sizeof(char)或sizeof(float),對於特定量,例如char ch[40] = ,可寫成sizeof ch, sizeof 6.11也是可以的,不過建議所有情況下都使用圓括號。

#include

intmain

(void

)

**輸出結果:

type int has a size of 4 bytes.

type char has a size of 1 bytes.

type double has a size of 8 bytes.

type float has a size of 4 bytes.

type ch[

30] has a size of 30 by bytes.

11.重新整理輸出

printf()何時把輸出傳送到螢幕上?最初,printf()語句把輸出傳送到乙個叫作緩衝區(buffer)的中間儲存區域,然後緩衝區中的內容再不斷被傳送到螢幕上。c標準明確規定了何時把緩衝區中的內容傳送到螢幕:當緩衝區滿、遇到換行字元或需要輸入的時候(從緩衝區把資料傳送到螢幕或檔案被稱為重新整理緩衝區)。

12月6日學習記錄

12.字串

字串的儲存: c語言沒有專門儲存字串的變數型別,字串都被儲存在char型別的陣列中,陣列由連續的儲存單元組成,每個單元儲存乙個字元,任何乙個字元陣列末尾都儲存字元』\0』(空字元,ascii碼是0),用來表示字串的結束,若儲存有20個字元的字串,字元陣列至少要有21個儲存單元(多的乙個用來儲存』\0』)。

字串的讀取

(1)可以使用scanf()函式讀取字串,但是需要注意的是scanf()函式在遇到第乙個空白(空格、製表符或換行符)時就停止讀取, 即使空格後仍有字元.

#include

intmain

(void

)

//輸入

hello world!

//輸出

ch=hello

13. 字串相關函式

strlen()函式

strlen()函式給出自符串中的字元長度(strlen()並不計入標記字串結束的空字元,空格和標點符號會計入),使用strlen()函式時,要使用string.h標頭檔案.strlen()函式的返回型別使用%d或%zd轉換說明.

#include

#include

intmain

(void

)

輸出

length =

12

14.const限定符

const關鍵字用於限定乙個變數為唯讀,即在程式中不可更改

const

int months =10;

//months在程式中不可更改,值12

12月7日學習記錄

15.printf()函式

printf()的返回值

printf()函式返回列印字元的個數,如果有輸出錯誤,printf()返回乙個負值。

#include

#include

intmain

(void

)

輸出

holle world!

the printf

() function printed 13 charaters.

16.scanf()函式

scanf()函式使用空白(換行符、製表符和空格)把輸入分成多個字段。在依次把轉換說明和字段匹配時跳過空白, 即在讀取資料時遇到空白跳過,直到遇到非空白資料才讀取,唯一例外的是%c轉換說明,根據%c, scanf()函式會讀取每個字元,包括空白。

#include

intmain

(void

)

輸入示例1

//輸入a1

2//輸出

ch=a

num1=

1,num2=

2

輸入示例2

C語言學習隨筆 while迴圈語句

當需要反覆執行某些過程的時候,就可以使用while迴圈 demo 數羊 include include include int main void printf 我睡著了 n return 0 while 1 死迴圈 while 條件 帶條件迴圈 break跳出迴圈 關於死迴圈,有些場合是需要死迴圈...

c語言學習隨筆之指標(一)

c語言的學習難點在於指標,但是指標也是c語言的精華所在,它可以間接的訪問和修改其他物件的值。下面是我對指標學習的乙個總結 有錯誤或者理解不當的地方希望高手指正 1 指標也是一種變數 明確指標和指標所指向的記憶體空間是兩個不同的變數。2 p操作記憶體 int a 1,b 2,c 3 int p 緊隨著...

C語言學習隨筆 關於字串

0個或多個 字元 有序 序列,有長度 0,就是空串 abc 有順序的 結束符,0 乙個位元組 字串常量用 括起來 china c h i n a 0 0 字串列印 printf name s rock 用 s匹配字串 字串儲存 c中,以字元陣列儲存 陣列,多個元素的 組合 每個元素的資料型別必須相同...