1.原理
C語言是一門編譯型計算機語言,要編寫C代碼,C源代碼文本文件本身無法直接執行,必須通過編譯器翻譯和鏈接器的鏈接,生成二進制的可執行文件,然后才能執行。這里的二進制的可執行文件就是我們最終要形成的可執行程序。
C語言形成可執行程序
-
每個源文件(.c)單獨經過編譯器處理生成對應的目標文件(.obj為后綴的文件)
-
多個目標文件和庫文件經過鏈接器處理生成對應的可執行程序(.exe文件)
2.查詢網站
庫函數查詢:C library - C++ Reference
C語言關鍵字:C 關鍵詞 - cppreference.com
ASCII編碼表:ASCII 碼表 - cppreference.com
-
字符A~Z的ASCII碼值從65~90
-
字符a~z的ASCII碼值從97~122
-
對應的大小寫字符(a和A)的ASCII碼值的差值是32
-
數字字符0~9的ASCII碼值從48~57
-
換行
\n
的ASCII值是:10 -
在這些字符中ASCII碼值從0~31 這32個字符是不可打印字符,無法打印在屏幕上觀察
4.變量
-
局部變量是放在內存的棧區
-
全局變量是放在內存的靜態區
-
堆區是用來動態內存管理的
5.運算符
#include <stdio.h>int main()
{float x = 6 / 4;int y = 6 / 4;printf("%f\n", x); //1.000000printf("%d\n", y); //1return 0;
}
C 語言里面的整數除法,默認是整除,只會返回整數部分,丟棄小數部分。
如果希望得到浮點數的結果,兩個運算數必須至少有一個浮點數,這時 C 語言就會進行浮點數除法。
#include <stdio.h>int main()
{float x = 6 / 4.0;int y = 6 / 4;printf("%f\n", x); //1.500000printf("%d\n", y); //1return 0;
}
運算符%
表示求模運算,即返回兩個整數相除的余值。這個運算符只能用于整數,不能用于浮點數。?
#include <stdio.h>int main()
{int x = 6 % 4;printf("x = %d\n", x);//2return 0;
}
負數求模的規則是,結果的正負號由第一個運算數的正負號決定。
#include <stdio.h>int main()
{printf("%d\n", 11 % -5); // 1printf("%d\n",-11 % -5); // -1printf("%d\n",-11 % 5); // -1return 0;
}
6.單目操作符
6.1前置++/--
先自增/自減,后賦值;?
#include <stdio.h>int main()
{int a = 10;int b = ++a; printf("a=%d b=%d\n", a, b);//a=11 b=11return 0;
}
6.2后置++/--
先賦值,后自增/自減;?
#include<stdio.h>int main()
{int a = 10;int b = a--;printf("a=%d b=%d\n", a, b);//a=9 b=10return 0;
}
7.占位符?
占位符 | 描述 |
%a | 十六進制浮點數,字母輸出為小寫 |
%A | 十六進制浮點數,字母輸出為大寫 |
%c | 輸出字符 |
%d | 十進制整數 |
%e | 使用科學計數法的浮點數,指數部分的e為小寫 |
%E | 使用科學計數法的浮點數,指數部分的E為大寫 |
%i | 整數,基本等同于%d |
%f | 小數(包含float類型和double類型) |
%g | 6個有效數字的浮點數。整數部分一旦超過6位,就會自動轉為科學計數法,指數部分的e為小寫 |
%G | 等同于%g,唯一的區別是指數部分的E為大寫 |
%hd | 十進制 short int 類型 |
%ho | 八進制 short int 類型 |
%hx | 十六進制 short int 類型 |
%hu | unsigned short int 類型 |
%ld | 十進制 long int 類型 |
%lo | 八進制 long int 類型 |
%lx | 十六進制 long int 類型 |
%lu | unsigned long int 類型 |
%lld | 十進制 long long int 類型 |
%llo | 八進制 long long int 類型 |
%llx | 十六進制 long long int 類型 |
%llu | unsigned long long int 類型 |
%Le | 科學計數法表示的 long double 類型浮點數 |
%Lf | long double 類型浮點數 |
%n | 已輸出的字符串數量。該占位符本身不輸出,只將值存儲在指定變量之中。 |
%o | 八進制整數 |
%p | 指針 |
%s | 字符串 |
%u | 無符號整數(unsigned int) |
%x | 十六進制整數 |
%zd | size_t類型 |
%% | 輸出一個百分號 |
8.scanf()賦值忽略符*
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main()
{int year = 0;int month = 0;int day = 0;scanf("%d%*c%d%*c%d", &year, &month, &day);printf("%d-%d-%d\n", year, month, day);return 0;
}