常量
二進位制 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個。用例 無論是比較同乙個字串或字元陣列中是否有相同的字元,還是對比兩個字串之間是否有...