日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++灵魂->指针

發(fā)布時間:2023/12/10 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++灵魂->指针 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C++靈魂->指針

    • 地址
    • 指針
          • 野指針
          • 空指針 【內(nèi)存動態(tài)分配】
          • 指針變量的運算(+,-,++,--)
    • 指針與一維數(shù)組

地址

計算機將內(nèi)存以單個字節(jié)為單位分開,并對每個字節(jié)進行唯一性編號,那么這個編號就是地址。

  • 取地址的運算符:& 單目運算符
  • 首地址,一段內(nèi)存空間中第一個存儲單元的地址【不是第一個變量】
  • 指針

    定義指針變量:數(shù)據(jù)類型 * 變量名 /*表示定義一個變量(指針變量)指向該數(shù)據(jù)類型*/ 例如: int *p /*p保存一個int類型變量的地址*/ int a = 10; 指針變量賦值 p = &a; /*p保存a的地址*/ 指針訪問變量值 int b = *p; /*訪問p中保存地址上的值*/
  • 指針變量用來存放地址的變量
  • 內(nèi)存大小為4字節(jié)
  • 在定義指針變量時的*只是表明該變量是個指針變量,沒有實際功能【為要區(qū)別指針變量解引用符號】
  • 野指針

    不能明確指向的指針變量,即保存的地址是不確定的

  • 為避免可以定義指針時,讓其指向NULL;即 int *p = NULL;
  • 空指針 【內(nèi)存動態(tài)分配】

    不能明確指向的內(nèi)存要存儲的數(shù)據(jù)類型,即void*

    指針變量的運算(+,-,++,–)

    指針變量的運算只是指針的偏移,指針之間的運算沒有意義

  • 指針變量的加減,是以該指針指向類型的空間單位進行偏移的【不是每次偏移都只是一個字節(jié)】
  • 指針與一維數(shù)組

    下面是指針數(shù)組取值的三種代碼方式:

  • 第一種方式看著和平時的數(shù)組索引遍歷代碼相同,其實是不同的,p[i]就相當(dāng)于*(p+i)。
  • 后兩種方式其實是一樣的,因為+號的優(yōu)先級低于*號,所以要用(),根據(jù)首地址偏移來獲取每個地址對應(yīng)的值。
  • #include <iostream>using namespace std;int main() {int array[4] = {13,14,35,33};int *p = array; //相當(dāng)于int *p1 = &array[0]int *p1 = &array[1];cout<<array<<endl; //數(shù)組名相當(dāng)于數(shù)組首地址cout<<*p<<endl; //返回數(shù)組首地址上的值cout<<*p1<<endl; //返回數(shù)組首地址偏移4個字節(jié)上的值cout<<"//"<<endl;for (int i = 0; i < 4; i++){cout<<p[i]<<endl;}cout<<"//"<<endl;for (int i = 0; i < 4; i++){cout<<*(p+i)<<endl;}cout<<"//"<<endl;for (int i = 0; i < 4; i++){cout<<*p++<<endl;}system("pause"); }

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的C++灵魂->指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。