第二章 C C 快速入門

2022-01-20 00:20:35 字數 4915 閱讀 1987

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. 主函式是乙個程式的入口位置,乙個程式最多只有乙個主函式

int

main()

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

字元常量必須使用單引號

#includeint

main()

//返回結果是abc

10. 轉義字元

\n代表空格

\0代表null

11. 布林型

在c++可以直接用。在c中必須加stdbool.h才可以用

取值是true和false,也可以複製整型常量,true=非零,false=零

#includeint

main()

12. 強制型別轉換

格式:(新型別名)變數名

13. 符號常量和const常量

#define pi 3.14//

末尾不加分號

#define add(a,b)((a)+(b))

const

double pi=3.14;//

二者都是常量,一旦定義值就無法改變

14. 自增

i++;//先使用i後自增

++i;//先自增後使用i

#includeint

main()

//結果:

//1 2

//2 2

15. 條件運算子

( ? :)是c語言中唯一的三目運算子,a ? b : c;

如果a為真那麼返回b,如果a為假那麼返回c

16. 位運算子

<< 左移 a<

const

int inf=(1

<<30)-1

//表示無窮大

17. 賦值操作

int

m,n;

n=m=5;//

連等n*=3;//

即n=n*3

18. &取位址符

定義變數後,會在計算機記憶體中分配一塊空間給該變數,&表示取得該變數的位址

除了字串陣列以外,輸入都要加&,因為陣列名稱本身代表了第乙個元素的位址

19. 除了%c以外,scanf對其他格式符(如%d)的輸入是以空白符(即空格、換行等)位界數判斷標誌的

#includeint

main()

/*輸入資料:

1 a bcd

輸出資料:

a=1,c= ,str=a

*/

20. 如果想輸出%或者\

printf("

%%");//

輸出%printf("

\\");//

輸出\

21. 對其輸出

%md,m位右對齊,高位用空格補

%0md,m位右對齊,高位用0補齊

%.mf讓浮點數保留m位小數輸出

#includeint

main()

/*12

12.3

12.35

12.346

12.3456

*/

22. getchar和putchar

putchar用來識別單個字元

getchar可以識別換行符

23. typedef給複雜資料型別起名來簡化使用

例如給long long 資料型別命名為ll

#includetypedef 

long

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字元陣列中

#includeint

main()

//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 所以很多基礎的部分就省略掉...