C語言基礎學習(一)

2021-10-04 17:27:19 字數 3770 閱讀 6375

常量

二進位制   0b1010

八進位制 012 (oct)

十進位制 10 (dec)

十六進製制 0x0a (hex)

浮點型 10.1 1.01e1 1.01e-2

字元常量 『a』

字串常量 「hello world」

man ascii 查詢ascii表示

變數在整個程式執行過程中會發生變化的

變數的定義

一般需要寫上變數的型別+變數名 

變數的基本資料型別有(預設都是帶符號的)

整型變數(b指位元組數)/

int 4b

char 1b

short 2b

long 4b

long long 8b

浮點型變數

float 4b

double 8b

如果需要定義不帶符號的變數, 在前面加上unsigned. 如unsigned int

char 1b

char a ; a的取值範圍(- 128 ~ +127 )

(1000 0000 ~~ 0111 1111)

char a = 『c』 ; 143 99 63 c

man ascii 查詢ascii表示

000 0

00 nul 『\0』 數字0

060 48

30 0 字元0

101 65

41 a

141 97

61 a

printf(「%d」)

%d表示基於該位址最多取4位元組的資料,並把這個資料當成是帶符號的十進位制列印出來

最高位為符號位, 如果為1則是負數;會把記憶體中的資料當成是補碼,顯示出對應的原碼

%u表示基於該位址最多取4位元組的資料,並把這個資料當成是無符號的十進位制列印出來

%x表示基於該位址最多取4位元組的資料,並把這個資料當成是十六進製制列印出來

%hd表示基於該位址最多取2位元組的資料,並把這個資料當成是帶符號的十進位制列印出來

h表示一半

%hhd表示基於該位址最多取1位元組的資料,並把這個資料當成是帶符號的十進位制列印出來

hh 表示一半再一半,

資料在記憶體中預設是補碼

如果正數 原碼 反碼 補碼是一致

如果是負數 數字本身叫原碼

補碼是反碼+1

原碼除了符號位全部取反得到反碼

反碼再+1 得到補碼

-127

原碼 1111 1111

反碼 1000 0000

補碼 1000 0001

格式化io : printf() scanf()

printf() 預設把資料顯示到終端(命令列視窗)

scanf() 從鍵盤上得到資料

%d4位元組 printf(「%d」)顯示為帶符號的10進製數

如果是scanf(「%d」 , &a); 從鍵盤上取0–9 + - ,如果取不到則報錯返回0

%u4位元組 printf(「%u」)顯示為無符號的10進製數

如果是scanf(「%d」 , &a); 從鍵盤上取0–9 + - ,如果取不到則報錯返回0

%x4位元組 printf(「%x」)顯示為16進製制數

如果是scanf(「%x」 , &a); 從鍵盤上取0–9 a–f ,如果取不到則報錯返回0

%c取乙個字元 整個ascii表對應的字元

printf(「%c」) 把這個數字對應的字元給顯示出來

scanf(「%c」 , &a); 通常情況是給char型別資料賦值

%o八進位制

%p列印位址值

%s字串

%e以指數形式列印出浮點數

%f以小數點形式列印浮點數

l 表示長型

h 表示一半位元組長度

%%表示乙個%號

字元中:

轉義序列符

\表示轉義

\ 表示才表示\的意思

\n 換行符 012 10 0a lf 『\n』 (new line) 換行符 在linux由【enter】產生

\t 製表符

\v\b 退格

\r 回車符

\0 表示數字0

可以用轉義序列符表示某個字元

141 97 61 a

char x = 97;

char x = 0141;

char x = 0x61;

char x = 『a』 ;

char x = 『\141』 使用轉義符只能跟8進製或16進製制一起表示

char x = 『\x61』 16進製制要加上x

資料型別轉換

隱式轉換

在運算過程中 由於型別不一致需要做的轉換

1: 賦值 按=左邊變數型別進行轉換

2: + - * /

位元組數比較少的向位元組數比較多的型別轉換

有符號數向無符號數轉換

顯式轉換

定義了變數後, 在使用變數時候(新變數型別)進行轉換

int a = 0x123456;

( char) a

變數名

由字母和下劃線開頭,由字母下劃線還有數字組成的

最好看到變數名就知道它的大概意思

不要和系統預設的關鍵字同名

表示式

int a , (char)a

語句if(ret == 0)

short b = a ;

寫程式注意事項:

1: 定義的變數名等要有一定的意思

2: 程式的布局, 適當使用空行和縮排

// 標頭檔案

#include

// 函式名

int main(void) 或者 int main(int argc, char **ar**)

中的內容要比所在位置多乙個tab

int a = 0;

if (a == 0)

return 0;

}3:可以在**中加上簡單的注釋

// 注釋

/* 注釋 */

算術運算子

浮點型數和int計算 對應的表示式是個double型別的資料

輸出結果的時候要注意你的格式

關係運算子 判斷時候使用

< == != >= <=

邏輯運算子

0 為假 非0就是真

! 邏輯反

&& 邏輯與

|| 邏輯或

(學習筆記若有錯誤,希望指出,謝謝**)

C語言基礎學習一

當初學習c語言的時候很粗略,現在先細細回顧一下基礎。在c程式中,字元常量有一對單引號括起來,其內部儲存表示的是相應字元的ascii編碼。所以申請儲存變數時應用int,ascii編碼可以直接做加減法,做完之後所代表的字元也發生相應改變。該變數用 d輸出時則代表ascii碼,用 c輸出時則代表相應字元。...

C語言學習基礎(一)

背景 考研失敗 找工作乏力 缺失信心 於是開始學習嵌入式 最開始是c語言基礎 好吧 說說今天學了什麼吧 感覺重要的我就記下來了 也當是自己的一種體驗吧 或者說是激勵自己學習得一種方式吧 1.c語言的特點 或許以後面試會用到吧 1 c語言可以直接對 位 位元組 位址 進行操作 位是記憶體中最小的單位 ...

學習C語言基礎

1.比較是否有等字元?方法 開闢乙個陣列,大的陣列空間,以ascii碼為索引,設定陣列值,每次設定前判斷是否已設定,如果是,說明有相等的,且知道是哪個字母相同。字母的ascii碼最大為122,所以陣列空間至少122個。用例 無論是比較同乙個字串或字元陣列中是否有相同的字元,還是對比兩個字串之間是否有...