無符號整型的取值範圍是0-65535(2^16-1),有符號整型的取值範圍是-32768——+32767(-2^8——2^8-1)
/*
*l&u可以是小寫
*/num=100l //l表示長整型
num=100u //u表示無符號整型
num=0123 //0用來表示八進位制,所有數字均需小於8
num=123 //十進位制數不需要新增字首
num=0x123 //0x十六進製制,十六進製制由0-9、a-f組成
/*資料以二進位制的方式存放在計算機中,數值是以補碼的形式儲存的,
*正數的補碼為原碼,負數的補碼其絕對值為按位取反再加1*/
/* *有符號數第一為符號位,0為負1為正
*/num=10e2 //表示10的平方
num=123f //單精度型別
num=123l //長雙精度型別 如果不新增預設為雙精度型別
char a = 'a'; //字元型常量
儲存字串常量時,系統會為字串後面自動新增「\0」作為結束符,長度為1
符號常量:程式開頭用define定義 格式:#definr num 10
signed int num; //有符號整型
unsigned int num; //無符號整型
long double num; //長雙精度變數
char c = 'a'; //字元型變數
變數的儲存型別:靜態static、暫存器register、外部extern、自動auto。
auto int num = 1; //自動儲存型別
static int num = 1; //靜態儲存型別
register int num = 1; //暫存器變數
extern int num = 1; //外部儲存變數
auto關鍵字用於定義乙個區域性變數為自動的,每次執行到該變數時,都會產生乙個新的變數,並對其重新進行初始化。區域性變數的儲存方式預設為自動的。
static變數為靜態變數,在語句執行期間,static變數始終保持它的值,初始化操作只在第一次執行時起作用,在執行過程中,變數保持語塊上一次執行的值。
register變數,將區域性變數儲存到暫存器中,提高程式執行速度
強制型別轉換
float i = 10.1f;
int j = (int)i;
算數運算子:兩個單目運算子(正負)+5個雙目運算子(加減乘除取餘)
兩個整數相除結果為整數,如7/4=1,捨去的是小數部分,若其中乙個為負數時,採取「向零取整」的方法,7/-4=-1,取整後向零靠攏。
當算數運算子的優先順序相同時,採用 自左向右結合的方式進行運算。
賦值運算子:= 等於運算子:==
邏輯運算子!!將變數的數值轉化為相應的邏輯真值或假值。
value = 2+5,3+1,5+7; //value=7
value = (2+5,3+1,5+7); //value=12
/* *()運算的優先順序高於,
*/printf("%d",~-15); //14
printf("%d",~15); //-16
/* *正數取反添負號加一,負數取反為正減一
字元輸入輸出函式
putchar(); //字元輸出函式,引數可為字元型
getchar(); //字元輸入函式,無參
//字元輸入輸出示例
getchar();
putchar(getchar());
char a = getchar();
putchar(a);
putchar(getchar()); //不會執行,無法輸入輸出字元
//字串輸入輸出示例
int main()
//\0作為結束符
int main()
puts(char *str); //字串輸出函式,引數為指標字元變數,以\0作為結束符,會自動換行
gets(); //字串輸入函式,會自動換行
%a 浮點數、十六進製制數字和p-記數法(c99)
%a 浮點數、十六進製制數字和p-記法(c99)
%c 乙個字元(char)
%c 乙個iso寬字元
%d 有符號十進位制整數(int)(%ld、%ld:長整型資料(long),%hd:輸出短整形。)
%e 浮點數、e-記數法
%e 浮點數、e-記數法
%f 單精度浮點數(預設float)、十進位制記數法(%.nf 這裡n表示精確到小數字後n位.十進位制計數)
%g 根據數值不同自動選擇%f或%e.
%g 根據數值不同自動選擇%f或%e.
%i 有符號十進位制數(與%d相同)
%o 無符號八進位制整數
%p 指標
%s 對應字串char*(%s == %hs == %hs 輸出 窄字元)
%s 對應寬字串wcahr*(%ws == %s 輸出寬字串)
%u 無符號十進位制整數(unsigned int)
%x 使用十六進製制數字0f的無符號十六進製制整數
%x 使用十六進製制數字0f的無符號十六進製制整數
%% 列印乙個百分號
%i64d 用於int64 或者 long long
%i64u 用於uint64 或者 unsigned long long
%i64x 用於64位16進製制資料
int main()
scanf格式化輸出符號詳細說明 c
輸出乙個字元
d 或 i
輸出帶符號的十進位制整數
o以八進位制無符號形式輸出整形數(不帶前導 0 )
x 或 x
以十六進製制無符號形式輸出整型數(不帶前導), x 輸出小寫字母, x 輸出大寫字母
u按無符號的十進位制形式輸出證型數
f以帶小數點的形式輸出單精度和雙精度數
e 或 e
以 [-]m..dde(e)+_xx 的指數形式輸出浮點數。 d 的個數精度指定,精度為 0 時小數部分不輸出
g 或 g
由系統決定採用 %f 格式還是採用 %e 格式,以使輸出寬度最小
s輸出字串的字元,直到
目錄
printf 格式化輸出符號詳細說明
遇到「 \0 」,或者輸出由精度指定的字串數
p輸出變數的記憶體位址
列印乙個「 % 」
m(m 為一正整數 )
規定輸出資料的最小寬度為 m 位
.n(n 為一正整數 )
對實數,表示輸出的實數保留 n 位小數,對字串,表示擷取字串的前 n 個字元
一使輸出的資料在域內向左對齊,省略「一」時,向右對齊
#includeint main()
輸入輸出字元格式以結束標誌「\0」作為最後乙個字元
printf使用的是變數的識別符號,而不是變數的位址。而scanf函式是用的是變數的位址,而不是變數的識別符號。
輸入輸出double型別的資料使用%lf
//大小寫轉換
#includeint main()
C 基礎 C語言部分4
一 編譯預處理 1.巨集定義 以 define 開始,分為帶引數和不帶引數兩種。不帶引數的巨集定義 define pi 3.14 巨集替換只是巨集名譽字串之間的簡單替換,不做其他任何資料型別和合法性檢查,也不分配記憶體空間。帶引數的巨集定義 define mul x y x y 注意 寫帶引數巨集定...
C 基礎 C語言部分2
一 列舉型別 enum 列舉型別名 enum weekday 二 全域性變數 在函式外定義,如 int a 但是引用的時候要使用 當區域性變數與全域性變數同名的時候,不同名的時候直接用a就可以了 a 來引用。三 變數的儲存類別 1.auto變數 只能修飾區域性變數,auto變數的空間在棧中分配,分配...
008 C語言基礎部分
c語言嚴格區分大小寫 常量與變數的區別 常量不可變,變數可變 資料型別 基本型別 構造型別 指標型別 空型別 基本型別 整型,字元型,浮點型,列舉型別 浮點型 單精度型,雙精度型 構造型別 陣列型別,結構型別,共用體型別 運算子和表示式 賦值運算子 計算運算子 關係運算子 邏輯運算子 位運算子 條件...