C語言總結2

來源:互聯網
上載者:User

標籤:進位   取出   define   運算子   c語言   max   步驟   異或   維數   

12).預先處理指令

1. 什麼叫做預先處理代碼.

以#開頭的代碼就是預先處理代碼  #warning #import

 

2. 手寫1個C程式的步驟.(面試題)

    1>編寫代碼

    2>編譯

        1)執行.c中的預先處理代碼

        2)檢查文法

    3>連結

    4>執行

 

3. 預先處理指令的分類.(面試題)  ******

    1>檔案包含指令  #include

    2>宏定義  #define    (用來替換代碼)

    3>條件編譯 #if  (滿足一定的條件才編譯)

 

4. 預先處理指令的特點.

    1>都是以#開頭

    2>後面沒有分號

    3>在編譯的時候,檢查文法之前進行

 

 

"注意

以#開頭的代碼就是預先處理代碼

 

13).sizeof運算子

sizeof運算子的作用?

作用:計算常量,變數在當前系統上記憶體中所佔的位元組數

sizeof (資料類型)

sizeof (變數)-----用的最多!

sizeof (常量)

 

 

注意,

char類型的變數在記憶體中佔1個位元組;

char類型的常量在記憶體中佔4個位元組;

綜上所述,為了安全起見,sizeof後面最好加上括弧!

14).按位異或

 

^ 異或運算

不同為1,相同為0

 

注意:

    1 相同整數相^的結果是0;

    2 一個整數^另一個整數2次結果不變 ; 3^2^2 = 3

3 整數相^跟順序無關 3^2^3 = 2^3^3 = 2

15). 按位左移或者右移

1,按位左移運算. <<

    參與按位左移運算的位元據. 向左移動指定的位元. 低位不夠補0 高位溢出就丟棄

 

2,按位右移. >>

參與按位右移的位元據.向右移動指定的位元. 低位溢出丟棄,高位補符號位.

 

左移

    1). 左移運算有可能會改變其正負性.

    2). 將1個數左移n位,相當於將這個數乘以2的n次方.

 

右移

    1). 右移運算不會改變正負性.

2). 將1個數按位右移n位.相當於這個數除以2的n次方.

16).深入變數的細節

一,變數在記憶體中的儲存

1,在為變數分配位元組空間的時候,是從高地址向低地址分配的

2,儲存的時候,是低位儲存在低位元組,高位儲存在高位元組.

 

二,變數的地址

3,變數的地址是組成這個變數的低位元組的地址.

4,使用&取地址可以取出變數的地址

17).數組地址問題

1.數組的地址 == 數組名 == 數組中的低位元組的地址 == 數組中下標為0的元素的地址 == 數組中下標為0的元素的低位元組的地址.

 

2,使用 %p 來列印數組名

18).二維數組與函數

1,當二維數組作為函數的參數的時]候.會丟失這個二維數組的行數和列數,解決方案是把行數和列數傳遞過來

 

2,當二維數組作為函數的參數的時候,要保證實參二維數組的列數必須要和形參二維數組的列數一致.

一個一勞永逸的方法是,寫參數的時候,先寫行數和列數,最後再寫二維數組,然後二維數組的列數用參數指定.

void test2(int rows,int cols,int arr[][cols]);

19). 使用字元數組儲存字串注意的地方

1). 如果沒有指定數組的長度.,那麼數組的長度就為字串的長度+1

 

2). 如果指定了長度,字元數組的長度就是指定的長度

 

3). 如果指定的字元數組的長度小於等於了字串的長度,這個時候就會有問題了.

就會出現儲存不下的情況.(不要指定長度)

 

4). 如果在聲明1個字元數組的同時我們就初始化1個字元資料給這個數組,

那麼這個時候是可以用中文.

20).指標

指標是一個資料類型,這資料類型可以用來定義變數,定義什麼變數,指標變數,那這個指標變數是用來幹什麼的,專門用來儲存地址的!

 

block是一個資料類型,這資料類型可以用來定義變數,定義的這個變數用來儲存一段代碼塊!!

21). 指標作為函數的參數

1,指標作為函數的參數,在函數的內部去訪問參數指標指向的變數的時候,其實訪問的就是實參變數.

 

2, 指標作為函數的參數,可以實現什麼效果?

    函數的內部可以修改實參變數的值.

 

3. 什麼時候需要將指標作為函數的參數?

    當函數需要返回多個資料的時候就可以使用指標作為函數的參數.

    如何?的?

    使用指標作為函數的參數. 讓調用者將自己的變數的地址傳遞到函數的內部

    函數的內部通過指標就可以修改實參變數的值.

 

4,返回數組最大值和最小值的思路

    1>讓調用者傳遞兩個變數的地址給我.

    2>讓調用者自己先準備兩個變數.然後將這兩個變數的地址給我.

    3>函數內部是不是可以通過指標 直接 修改 調用者的變數的值.

    *pMax = max; //把最大值賦值給pMax指標指向的變數.

*pMin = min;//把最小值賦值給pMin指標指向的變數.

22).指標為什麼要分類型

1, 指標變數的類型決定了 通過這個指標找到位元組以後 連續操作多少個位元組空間.

2, 指標的類型如果不和指向的變數的類型相同話. 那麼通過指標就無法正確的操作指向的變數.

 

注意:

           p1[n] = *(p1+n); 前提是p1是1個指標變數.

C語言總結2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.