最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言 從根本上理解指針

 更新時間:2022年04月19日 10:29:53   作者:清風(fēng)自在 流水潺潺  
C語言這門課程在計算機(jī)的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語言的學(xué)習(xí),對指針的掌握是非常重要的,本文將具體針對指針的基礎(chǔ)做詳盡的介紹

一、* 的意義

  • 在指針聲明時,* 號表示所聲明的變量為指針
  • 在指針使用時,* 號表示取指針?biāo)赶虻膬?nèi)存空間中的值

如下:

int i = 0;
int j = 0;
int* p = &i; //指針聲明
j = *p; //取值

變量 p 保存著變量 i 的內(nèi)存地址,即:p <--> &i *p <--> i

* 號類似一把鑰匙,通過這把鑰匙可以打開內(nèi)存,讀取內(nèi)存中的值。

下面看一個指針的使用示例:

#include <stdio.h>
int main()
{
    int i = 0;
    int* pI;
    char* pC;
    float* pF;
    
    pI = &i;
    
    *pI = 10;
    
    printf("%p, %p, %d\n", pI, &i, i);
    printf("%d, %d, %p\n", sizeof(int*), sizeof(pI), &pI);
    printf("%d, %d, %p\n", sizeof(char*), sizeof(pC), &pC);
    printf("%d, %d, %p\n", sizeof(float*), sizeof(pF), &pF);
    
    return 0;
}

輸出結(jié)果如下:

所有 32 位系統(tǒng)上的指針變量占用內(nèi)存大小都為 4 個字節(jié)。

二、傳值調(diào)用與傳址調(diào)用

  • 指針是變量,因此可以聲明指針參數(shù)
  • 當(dāng)一個函數(shù)體內(nèi)部需要改變實參的值,則需要使用指針參數(shù)
  • 函數(shù)調(diào)用時實參值將復(fù)制到形參
  • 指針適用于復(fù)雜數(shù)據(jù)類型作為參數(shù)的函數(shù)中

下面看一個利用指針交換變量的代碼:

#include <stdio.h>
 
int swap(int* a, int* b)
{
    int c = *a;
    
    *a = *b;
    
    *b = c;
}
 
int main()
{
    int aa = 1;
    int bb = 2;
    
    printf("aa = %d, bb = %d\n", aa, bb);
    
    swap(&aa, &bb);
    
    printf("aa = %d, bb = %d\n", aa, bb);
    
    return 0;
}

輸出結(jié)果如下:

三、常量與指針

const int* p;    //p 可變,p 指向的內(nèi)容不可變
int const* p;    //p 可變,p 指向的內(nèi)容不可變
int* const p;    //p 不可變,p 指向的內(nèi)容可變
const int* const p;    //p 和 p 指向的內(nèi)容都不可變

口訣:左數(shù)右指

當(dāng) const 出現(xiàn)在 * 號左邊時指針指向的數(shù)據(jù)為常量,當(dāng) const 出現(xiàn)在 * 后右邊時指針本身為常量

下面通過一個例子加深理解:

#include <stdio.h>
 
int main()
{
    int i = 0;
    
    const int* p1 = &i;
    int const* p2 = &i;
    int* const p3 = &i;
    const int* const p4 = &i;
    
    *p1 = 1;    // compile error
    p1 = NULL;  // ok
    
    *p2 = 2;    // compile error
    p2 = NULL;  // ok
    
    *p3 = 3;    // ok
    p3 = NULL;  // compile error
    
    *p4 = 4;    // compile error
    p4 = NULL;  // compile error
    
    return 0;
}

輸出結(jié)果如下:

四、小結(jié)

  • 指針是 C 語言中一種特別的變量
  • 指針?biāo)4娴闹凳莾?nèi)存的地址
  • 可以通過指針修改內(nèi)存中的任意地址內(nèi)容

到此這篇關(guān)于C語言 從根本上理解指針的文章就介紹到這了,更多相關(guān)C語言 指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 單鏈表的基本操作(詳解)

    C++ 單鏈表的基本操作(詳解)

    下面小編就為大家?guī)硪黄狢++ 單鏈表的基本操作(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C++ 遞歸遍歷文件并計算MD5的實例代碼

    C++ 遞歸遍歷文件并計算MD5的實例代碼

    在本篇文章里小編給大家整理的是一篇關(guān)于C++ 遞歸遍歷文件并計算MD5的實例代碼,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-07-07
  • c++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)

    c++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)

    下面小編就為大家?guī)硪黄猚++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 插入排序算法之希爾排序+直接插入排序

    插入排序算法之希爾排序+直接插入排序

    這篇文章主要介紹了插入排序算法之希爾排序+直接插入排序的相關(guān)知識,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Qt定時器(QTimer)的3種使用方法

    Qt定時器(QTimer)的3種使用方法

    本文主要介紹了Qt定時器(QTimer)的3種使用方法,主要包括QObject類提供的定時器,QTimer類提供的定時器,靜態(tài)的singleShot?()函數(shù)創(chuàng)建單觸發(fā)定時器,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • C++關(guān)于字符的接收與輸出操作示例

    C++關(guān)于字符的接收與輸出操作示例

    這篇文章主要介紹了C++關(guān)于字符的接收與輸出操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • C++實現(xiàn)LeetCode(135.分糖果問題)

    C++實現(xiàn)LeetCode(135.分糖果問題)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(135.分糖果問題),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言實現(xiàn)飛機(jī)游戲(豪華版)的示例代碼

    C語言實現(xiàn)飛機(jī)游戲(豪華版)的示例代碼

    在前文中已經(jīng)實現(xiàn)了基礎(chǔ)版和進(jìn)階版的飛機(jī)游戲,但是存在的問題很明顯:已經(jīng)發(fā)射出去的子彈會隨著飛機(jī)位置的實時改變而改變,并且不能實現(xiàn)連發(fā)。本篇文章將利用數(shù)組進(jìn)一步改進(jìn)空戰(zhàn)游戲,感興趣的可以了解一下
    2022-10-10
  • 深入淺析C++中的#,##,和

    深入淺析C++中的#,##,和

    這篇文章主要介紹了C++中的#,##,和"的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • C語言菜鳥基礎(chǔ)教程之判斷

    C語言菜鳥基礎(chǔ)教程之判斷

    C語言判斷結(jié)構(gòu)要求程序員指定一個或多個要評估或測試的條件,以及條件為真時要執(zhí)行的語句(必需的)和條件為假時要執(zhí)行的語句(可選的)
    2017-10-10

最新評論

南溪县| 泗水县| 吉木乃县| 集安市| 商水县| 金堂县| 托克逊县| 泰顺县| 沈阳市| 台东县| 和平区| 碌曲县| 陆河县| 丘北县| 会昌县| 东丽区| 安远县| 石景山区| 德江县| 台前县| 桐城市| 正定县| 梁平县| 密云县| 开鲁县| 永丰县| 蕉岭县| 伊通| 叶城县| 江北区| 秀山| 乾安县| 常州市| 蚌埠市| 壤塘县| 乌恰县| 册亨县| 湖北省| 福清市| 文水县| 新宾|