指標:
為什麼需要指標?
使用指標處理陣列中儲存的資料,執行速度要比使用 下標 快很多。
指標可以做到更改函式呼叫處之前的區域性變數
指標:乙個變數的位址為該變數的「指標」,十個常量
指標變數:
指標變數是乙個變數,用於儲存位址的值
指標變數的宣告:
資料型別 *指標變數名;
int i = 10;
int *p1; //可以將int *看做是乙個整體,然後p1中需要儲存的是位址型別的資料
p1 = &i; //&是取址運算子 等價於 int *pi = &i;
* 號為 取址運算子
1.表示式中,*號兩邊都有變大時的話,*號是四則運算的乘法運算
2.在宣告語句中,*號表明後面的變數為乙個指標形式的變數
3.*號如果不在宣告語句中,而只是在右邊的表示式的話,表明取*號右邊變數中所存位址對應記憶體中的資料(取值)
*p3 - &i;
等價於 i = &i;
printf("%d\n");列印結果是十進位制的
printf("%p\n");列印結果是十六進製制的 ,專門用於列印記憶體位址值
int i2 = 10;
int *p5;
int *p6;
p5 = &i2;
&*p5 //*p5等於i2 //&*p5 等於 &i2
*&i2 //實際上就是 i2的值
(*p5)++;
先找出p5所儲存位址指向的儲存單元的值,把值進行自加,p5的位址不變
*p5++;
++ 與 * 同一優先順序,結合方向是從右向左,所以先找出p5所儲存位址的值,然後該值加一,那麼現在p5就不在指向變數i2了
在c語言中,位址傳遞也稱為引用傳遞
C語言學習筆記(3)
edited by silence獨家 命名規範 1 識別符號的命名要清晰,明了,有明確含義,同時使用完整的單詞或大家基本可以理解的縮寫,避免使人產生誤會 2 除了常見的通用縮寫以外,不使用單詞縮寫,不得使用漢語拼音 3 產品 專案組內部應保持統一的命名風格 4 用正確的反義詞組命名具有互斥意義的變...
C語言學習筆記(3)
基礎知識 一維陣列的定義方式為 型別說明符 陣列名 常量表示式 例如 int a 10 說明整型陣列 a,有 10 個元素。float b 10 c 20 說明實型陣列 b,有 10 個元素,實型陣列 c,有 20 個元素。char ch 20 說明字元陣列 ch,有 20 個元素。初始化賦值的一般...
C語言學習筆記 3
1.typedef 在前文中,我們用巨集定義來定義了乙個bool型別,那麼現在就用更專業的方式來定義型別。typedef int bool int main void else typedef 的作用就是型別定義 type definition 型別定義有以下三個優點 1.易於閱讀。比如我們可以把定...