溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言查漏補缺——指針

發布時間:2020-07-29 03:03:15 來源:網絡 閱讀:516 作者:chengarm 欄目:編程語言

        本節將詳細分析指針。


一、指針

     指針實際上也是一個變量,不過這個變量與眾不同的是,他存的值是一個地址。

    int a = 4;
    int* p = &a;

    這段代碼的內存如圖所示

C語言查漏補缺——指針


        從圖中可以看出,p本質上也是一個變量,只是這個變量比較特殊,他的值是a變量的地址。

        這個時候,我們通過*號就可以訪問p變量存儲的這個地址所保存的值,這句話讀起來可能有點繞。簡單來說,就是*p這樣做以后,讀到的實際上是a的值,也就是說*p ==> 4。


 二、傳值調用與傳址調用

        如果函數體內部,需要改變實參的時候,就需要通過指針來完成。

        考慮這樣一個問題,使用一個函數,完成兩個數的交換。這個基本上是咱們學C語言最開始就會寫的函數。

int swap(int* a, int* b)
{
    int c = *a;
    *a = *b;
    *b = c;
}

        函數在進行傳值調用的時候,不會改變實參的值,只能在函數內部利用實參的值。


三、常量指針

        之前我們已經討論過了const關鍵字,這里將const關鍵字和指針結合。主要存在以下幾點需要注意

const int* p;            //p可變,p指向的內容不可變
int cosnt* p;            //跟上一次一樣,沒有區別
int* const p;            //p不可變,p指向的內容可變
const int* const p;      //p不可變,p指向的內容也不可變

        對于記憶const跟指針的結合,有個口訣,左數右指。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女