黑馬程式設計師 C語言01 基礎總結

2021-06-21 10:14:19 字數 3986 閱讀 2724

---------------------- asp.net+unity開發

、.net培訓

、期待與您交流! ----------------------

一、進製

1.1、預設情況下為十進位制

int number = 1010;

1.2、二進位制(以0b或0b開頭)

int number = 0b1100;

1.3、八進位制(以0開頭)

int number = 014

1.4、十六進製制(以0x或0x開頭)

int number = 0xc

二、格式符

%d   十進位制有符號整數

%ld  long int

%lld long long int

%u   十進位制無符號整數

%f    浮點數

%s   字串

%c   單個字元

%p   指標的值(位址)

%e   指數形式的浮點數

%x   無符號以十六進製制表示的整數

%o   無符號以八進位制表示的整數

%g   自動選擇合適的表示法

\n     換行

\r      回車

\t      tab符

%%  輸出%

\\       輸出\

三、儲存空間(64位編譯器)

1個位元組 = 8bit

char 1個位元組

int 4位元組

float 4個位元組

double 8個位元組

short 2個位元組

long 8個位元組

long long 8個位元組

指標 8個位元組

四、位運算子

4.1、按位與(&)

功能:只有對應的兩個二進位均為1時,結果位才為1,否則為0

tips: 二進位制中,與1相&就保持原位,與0相&就為0,所以可以用下面這個**判斷奇偶性

a&1?printf("a是奇數"):printf("a是偶數");

4.2、按位或(|)

功能:只要對應的兩個二進位有乙個為1時,結果位就為1,否則為0。

4.3、按位異或(^)

功能:當對應的二進位相異(不相同)時,結果為1,否則為0。

tips:相同正數異或為0,異或沒有順序,所以可以得出a^b^a=b

4.4、取反(~)

功能:對整數a的各二進位進行取反,符號位也取反(0變1,1變0)

4.5、左移(<<)

功能:把整數a的各二進位全部左移n位,高位丟棄,低位補0。左移n位其實就是乘以2的n次方

tips:有可能改變正負性

4.6、右移(>>)

功能:把整數a的各二進位全部右移n位,保持符號位不變。右移n位其實就是除以2的n次方

tips:正數高位補0,負數補0或1取決於編譯器

五、預處理指令

5.1注意點:

5.1.1、所有預處理指令都是#開頭的

5.1.2、預處理指令分為3種

5.2.1>巨集定義

5.2.2>條件編譯

5.2.3>檔案包含

5.1.3、預處理指令包含翻譯成0和1之前執行

5.1.4、預處理指令的位置是隨便寫的

5.1.5、預處理指令的作用域,從編譯那行到檔案結束

5.1.6、巨集名一般用大寫,變數名一般用小寫

5.2巨集定義

#define 巨集名 值

在**中間加入#undef 後,巨集將被取消

帶引數的巨集 #define sum(a,b) a+b,只負責**轉化不負責運算

5.3條件編譯

#if()語句;

#elif()語句;

#else()語句;

#endif()語句;

5.4typedef

5.4.1作用:給已存在的型別定義乙個新的類名

5.4.2使用場合:

1>基本資料型別

typedef int myint;

2>指標

typedef char * string;

3>結構體

typedef struct

date;

4>列舉

typedef enum

***;

5>指向函式的指標

int sum(int a, int b)

typedef int (*mypoint)(int, int);

6>指向結構體的指標

typedef struct person

* personpoint;

struct person p = ;

personpoint p2 = &p;

5.5static和extern

可作用於函式和變數

5.5.1.作用於函式

static作用:

1>定義乙個內部函式

2>宣告乙個內部函式

extern作用:

1>完整的定義乙個外部函式

2>完整的宣告乙個外部函式(extern可以省略,預設的情況下定義的函式都是外部函式)

tips:

外部函式:定義的函式能被本檔案和其它檔案進行訪問(預設的情況下所有函式都是外部函式)不允許有同名的外部函式

內部函式:定義的函式只能被本檔案訪問,其它檔案不能訪問,允許不同檔案中有同名的內部函式

5.5.2.作用於變數

extern作用:宣告乙個外部變數

static作用:定義乙個內部變數

5.5.2.1全域性變數

5.5.2.2區域性變數:

static作用:

1>延長區域性變數的生命週期,程式結束的時候才會被銷毀

2>並沒有改變區域性變數的作用域

3>所有的函式都共享乙個變數

例如:

test()

這個test函式每呼叫一次,a的值就會加1,而b的值則不會改變。

使用場合:

如果某個函式的呼叫頻率特別高且這個函式內部的某個變數值是固定不變的

例如:計算一百次圓周長時的π,就可以定義為static區域性變數

六、遞迴

使用遞迴需滿足兩個條件:

6.1、函式自己呼叫自己

6.2、必須有個明確的返回值,即當達到某種條件時,不再呼叫函式,否則將成為死迴圈

例:計算乙個數的平方(不考慮負數平方)

int mypow(int a, int n)\\n代表平方

七、兩個數互換(兩種方法)

7.1、使用第三方變數

temp = a;

a = b;

b = temp;

7.2、不使用第三方變數(加減法)

減法:

a = b - a;

b = b - a;

a = b + a;

加法:

a = a + b;

b = a - b;

a = a - b;

異或(^):

a = a ^ b;

b = a ^ b;

a = a ^ b;

---------------------- asp.net+unity開發

、.net培訓

、期待與您交流! ----------------------詳細請檢視:www.itheima.com

黑馬程式設計師 C語言基礎

ios培訓 android培訓 期待與您交流!一 c語言的流程控制 1 順序結構 按照程式的書寫順序執行每一條語句 2 選擇結構 對給定的條件進行判斷,再根據判斷結果來決定執行哪一段 2.1 if語句 1 if的第一種結構 if 條件 eg include int main return 0 2 i...

黑馬程式設計師 C語言基礎

asp.net unity開發 net培訓 期待與您交流!c語言算數運算子 1.2.3.4.5.int a 10,b 20 printf 兩個差 d b a printf 兩個和 d b a printf 兩個積 d b a printf 兩個商 d b a printf 兩個餘 d b a 小技巧...

黑馬程式設計師 C語言基礎

asp.net unity開發 net培訓 期待與您交流!簡介 c語言於1972年發明,首次使用是用於重寫uinx作業系統。隨著unix作業系統的成功,c語言也得到了大幅度地推廣,是世界上最流行 使用最廣泛的高階程式語言之一。基礎語法 關鍵字 1 關鍵字就是c語言提供的有特殊含義的符號,也叫做 保留...