1. c和c++部分區別
輸入輸出,指標引用
c語言的scanf和printf比c++的cin和cout要快
2. 標頭檔案是什麼
#include
例如stdio是標準輸入輸出庫,.h是標頭檔案的檔案格式。檔案中包含一些跟輸入輸出有關的東西,程式需要輸入輸出的時候,需要引用標頭檔案才能使用檔案裡的輸入輸出函式
在c++中,推薦使用cstdio代替stdio.h,即#include和#include是等價的。其他檔案例如math.h和cmath也是等價的,所以在c++中可以使用字首加乙個c並去掉後面.h
3. 主函式是乙個程式的入口位置,乙個程式最多只有乙個主函式
intmain()
4. 輸入輸出
scanf("%d%d
",&a,&b);
printf(
"%d",a+b);
scanf用來讀入資料,%d是int型的輸入輸出標識
5. c++向下相容c,對於c語言檔案可以選擇儲存成.cpp格式
6. 變數名
不能是c語言識別符號
第乙個字元必須是字母或者下劃線,吃了第乙個字元以外,其他字元必須是字母、數字、下劃線
變數名區分大小寫
7. 整型用%d表示
短整型short
整型int:一般乙個整數占用32位即4位元組,10^9(2^31)以內都可以定義成int
長整型long long:一般乙個整數占用64位即8位元組,如果賦初值的時候待2^31-1則需要在初值後面加上ll否則編譯錯誤
8. 浮點型用%f表示
單精度float,乙個浮點數占用32位,1位作為符號位,8位作為指數字,23位作為尾數字,有效精度只有6-7位
雙精度double,乙個浮點占用64位,1位作為符號位,1位作為指數為,52位作為位數字,有效精度有15-16位,多使用double
9. 字元型用%c表示
ascii碼轉換
0-9:48-57
a-z:65-90
a-z:97-122
字元常量必須使用單引號
#includeintmain()
//返回結果是abc
10. 轉義字元
\n代表空格
\0代表null
11. 布林型
在c++可以直接用。在c中必須加stdbool.h才可以用
取值是true和false,也可以複製整型常量,true=非零,false=零
#includeintmain()
12. 強制型別轉換
格式:(新型別名)變數名
13. 符號常量和const常量
#define pi 3.14//末尾不加分號
#define add(a,b)((a)+(b))
const
double pi=3.14;//
二者都是常量,一旦定義值就無法改變
14. 自增
i++;//先使用i後自增++i;//先自增後使用i
#includeintmain()
//結果:
//1 2
//2 2
15. 條件運算子
( ? :)是c語言中唯一的三目運算子,a ? b : c;
如果a為真那麼返回b,如果a為假那麼返回c
16. 位運算子
<< 左移 a<
constint inf=(1
<<30)-1
//表示無窮大
17. 賦值操作
intm,n;
n=m=5;//
連等n*=3;//
即n=n*3
18. &取位址符
定義變數後,會在計算機記憶體中分配一塊空間給該變數,&表示取得該變數的位址
除了字串陣列以外,輸入都要加&,因為陣列名稱本身代表了第乙個元素的位址
19. 除了%c以外,scanf對其他格式符(如%d)的輸入是以空白符(即空格、換行等)位界數判斷標誌的
#includeintmain()
/*輸入資料:
1 a bcd
輸出資料:
a=1,c= ,str=a
*/
20. 如果想輸出%或者\
printf("%%");//
輸出%printf("
\\");//
輸出\
21. 對其輸出
%md,m位右對齊,高位用空格補
%0md,m位右對齊,高位用0補齊
%.mf讓浮點數保留m位小數輸出
#includeintmain()
/*12
12.3
12.35
12.346
12.3456
*/
22. getchar和putchar
putchar用來識別單個字元
getchar可以識別換行符
23. typedef給複雜資料型別起名來簡化使用
例如給long long 資料型別命名為ll
#includetypedeflong
long
ll;int
main()
//輸出:123456789012345
24. 常用math函式,加上math.h標頭檔案
fabs(double x):對x取絕對值
floor(double x):對x向下取整
ceil(double x):對x向上取整
pow(double r,double p):得出r^p
sqrt(double x):返回x的算術平方根
log(double x):返回x的以自然對數為底的對數
sin,cos,tan (double x)三角函式,引數要求是弧度值 const double pi = acos(-1.0) x=pi*45/180
round(double x):對x四捨五入
25. if語句
在if語句中,表示式是「!=0」或者「==0」那麼可以簡化
如果是「!=0」可以省略「!=0」,
如果是「==0」可以省略「==0」並在表示式前新增!
if(m)if(!m)
26. switch語句
switch(表示式)
如果不在case中加上break,則會從命中行開始順序執行到結束
27. 左對齊和右對齊
printf("%-10d\n
",101010); //
左對齊10位
printf("
%10d
",101010); //
右對齊10位
28. 氣泡排序,每次香菱兩個元素進行比較,每一趟排序後都有乙個元素的位置被確定,整個過程執行n-1趟
29. memset:對陣列中每乙個元素賦相同的值
memset(陣列名,值,sizeof(陣列名));
需要新增string.h標頭檔案
30. puts和gets
gets識別換行符\n作為輸入結束
puts用來輸出一行字串
31. string.h標頭檔案
strcmp(字元陣列1,字元陣列2)
字典序1<2返回負整數
1==2返回0
1>2返回正整數
strlen(字元陣列)
得到字元的個數
strcpy(字元陣列1,字元陣列2)把乙個字串2賦值給另乙個字串1
strcat(字元陣列1,字元陣列2)把字元陣列2街道字元陣列1後面
32.sscanf和sprintf
sscanf(str,"%d",&n);
sprintf(str,"%d
",n);
sscanf:把字元陣列str中的內容以%d的格式寫到n中
sprintf:把n以%d的格式寫到str字元陣列中
#includeintmain()
//123
33.變數在記憶體中如何存放
每個變數存放在記憶體中分配的乙個空間,每種型別變數所佔的空間不一樣。
每個位元組都會有乙個位址,計算機通過位址找到變數
34.指標
乙個房間號指向乙個房間。乙個位址指向乙個變數。
指標類似於變數的位址
&表示變數的位址
int a 是變數,&a 是他的位址
指標是乙個unsigned型別的整數
35.指標變數
用來存放指標,或者說位址
給指標變數賦值的方式是把變數的位址取出來,賦給對應型別的指標變數
*是型別的一部分,因此*p代表值,p代表指標變數
int*是指標變數的型別,p表示變數名
陣列名作為陣列的首位址
36.引用
c++的引用不產生副本
對引用變數的操作就是對原變數的操作
常量不可以使用引用
37.結構體
建構函式的乙個特點是它不需要寫返回型別,且函式名與結構體名相同
38.cin與cout
get輸入單個空白字元,可以接受空格回車等
getline輸入包含空白的長字串,可以接受空格,遇到回車停止
cin.getline(str,100);//讀入陣列str[100]
getline(cin,str);//string容器
第二章 c c 快速入門
1.整數範圍選擇 10 9以內或者32位整數,用int。10 18以內或者64位整數用long long 2浮點型用double即可。3字元常量用ascii統一編碼。標準ascii範圍0 127。0 9,a z,a z對應的ascii碼分別為48 57,65 90,97 122.4.字串可以直接賦值...
演算法筆記 第二章c c 快速入門 總結
cin與cout消耗的時間比scanf和printf多得多,建議使用scanf與printf.標頭檔案 include c 中 如int a 1 int的範圍 絕對值在10 9內,printf用 d輸出。long long的範圍 絕對值在10 18內,printf用 lld輸出。long long型...
演算法筆記 第二章 C C 快速入門 學習總結
如果時間充足的話,想學c語言的話推薦去看書 c和指標 然後配著mooc上翁愷老師的課程一起看,看完之後基礎可以比較紮實,如果時間很緊張就仔細閱讀這部分內容,配著翁愷老師mooc一起。由於之前有c的基礎,這學期也在學習c c 可以聽翁愷老師和侯捷老師的課,書用c prime 所以很多基礎的部分就省略掉...