學習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中,以字元陣列儲存 陣列,多個元素的 組合 每個元素的資料型別必須相同...