1. 程式人生 > >快速上手c語言,需要知道的一些要點(持續更新,我用的VS2012編的)

快速上手c語言,需要知道的一些要點(持續更新,我用的VS2012編的)

地址和指標

  指標的一般形式:型別說明 *變數名(*表示該變數是一個指標變數,變數名即為定義的指標變數名,型別說明表示指標變數所指向的變數的資料型別)

指標變數和普通變數一樣,使用前需定義並賦值

& 變數名 如&a表示變數a的地址,及地址運算子

&和*的運算子優先級別相同,按自左向右的方向結合

 

傳遞指標給函式:

定義函式無非就是對一些數值進行修改,當把函式的引數定義為所需修改的變數型別的指標時,則對指標進行相應的賦值就行,然後呼叫函式時引數改為需修改的變數的儲存值即&變數

要迴圈陣列是也需記得定義一個相應類的指標,通過陣列對指標進行迴圈,陣列不能直接迴圈,因為陣列是常量指標。

 

 

C 不支援在呼叫函式時返回區域性變數的地址,除非定義區域性變數為 static 變數。

因為區域性變數是儲存在記憶體的棧區內,當函式呼叫結束後,區域性變數所佔的記憶體地址便被釋放了,因此當其函式執行完畢後,函式內的變數便不再擁有那個記憶體地址,所以不能返回其指標。

除非將其變數定義為 static 變數,static 變數的值存放在記憶體中的靜態資料區,不會隨著函式執行的結束而被清除,故能返回其地址。

 

產生隨機數的程式碼

函式指標

 

陣列和指標

  當定義一個一維陣列是,系統會在記憶體中為該陣列分配一個儲存控制元件,其陣列的名稱就是陣列在記憶體中的首地址。若定義一個只爭變數,並將陣列的首地址傳給指標變數,則該指標就指向了這個一維陣列

輸入輸出

  字串輸入輸出:(需要新增標頭檔案stdio.h)

                 輸出單個字元:putchar

                 輸入單個字元:getchar(得到的字元可以賦給一個字元變數或整型變數)

                 字串輸出:puts(會自動在字串後加\0即自動換行)

                 字串輸入:gets函式,字元型別(語法格式char *gets(char *str))

  格式輸出函式:輸入、輸出函式scanf和printf

printf函式的格式字元:

 

scanf函式(一般格式scanf(格式控制,地址列表))

迴圈控制

轉移語句:

        goto 識別符號;無條件轉移語句,即可令程式立即跳轉到函式內部的任意一條可執行的語句。

        break語句,跳出所有迴圈

        continue語句,跳出所有迴圈

字串處理函式

字串複製(需先新增標頭檔案string.h):

字串複製,strcpy(目的字元陣列名, 源字元陣列名)

字串連線,strcat(str1, str2),輸出str1

字串比較,strcmp(字元陣列名 1, 字元陣列名2)

           字串1等於字串2,返回值0

           字串1大於字串2,返回值為正數

           字串1小於字串2,返回值為負數

字串大小寫轉換,大寫Strupr(字串)

                  小寫strlwr(字串)

獲得字串長度:strlen(字元陣列名)

內部函式和外部函式

內部函式:在函式的返回型別前加上關鍵字static,就將原來的函式修飾成內部函式(內部函式只能在所在的原始檔中使用)

外部函式:外部函式是可以被其他原始檔呼叫的函式,定義外部函式使用關鍵字extern進行修飾

 

標頭檔案的引入

主要:

解決scanf使用問題

宣告#define _CRT_SECURE_NO_WARNINGS

結構體

Stuct 結構體名{

   成員列表

}變數名列表;

變數可直接訪問結構體的成員列表

 

Struct 結構體名{

  成員列表

}結構體陣列;

 

Struct 結構體名{

  成員列表

}結構體陣列={初始值列表};

 

結構體指標

結構體型別 *指標名

(*pStruct).成員名

 

字串

 

C typedef

typedef 僅限於為型別定義符號名稱,#define 不僅可以為型別定義別名,也能為數值定義別名,比如您可以定義 1 為 ONE。

typedef 是由編譯器執行解釋的,#define 語句是由預編譯器進行處理的。

 

前處理器

 

需要記住得到要點

 

在變數宣告的時候,如果沒有確切的地址可以賦值,為指標變數賦一個 NULL 值是一個良好的程式設計習慣。賦為 NULL 值的指標被稱為空指標。

區域性變數要定義在方法前面

C語言中用char *string代替string,輸出用string就行

注:多檔案管理的時候,在標頭檔案裡面宣告自定義函式(例a.h)

       在C語言檔案裡寫下自定義函式的實現(b.h)

       在主函式中呼叫函式(要引入b.h)