中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C++指針筆記

  下面隨筆給出C++指針筆記。

內(nèi)存空間的訪問方式

  • 通過變量名訪問

  • 通過地址訪問

指針的概念

  • 指針:內(nèi)存地址,用于間接訪問內(nèi)存單元

  • 指針變量:用于存放地址的變量

指針變量的定義

  • 例:

  static int i;

  static int* ptr = &i;

  • 例:

  *ptr = 3;

與地址相關(guān)的運算——“*”和“&”

  • 指針運算符

  • 地址運算符:&

指針變量的初始化

  • 語法形式

存儲類型 數(shù)據(jù)類型 *指針名=初始地址;

  • 例:

  int *pa = &a;

  • 注意事項

    • 用變量地址作為初值時,該變量必須在指針初始化之前已聲明過,且變量類型應(yīng)與指針類型一致。

    • 可以用一個已有合法值的指針去初始化另一個指針變量。

    • 不要用一個內(nèi)部非靜態(tài)變量去初始化 static 指針。

指針變量的賦值運算

  • 語法形式

指針名=地址

注意:“地址”中存放的數(shù)據(jù)類型與指針類型必須相符

  • 向指針變量賦的值必須是地址常量或變量,不能是普通整數(shù),例如:

    • 通過地址運算“&”求得已定義的變量和對象的起始地址

    • 動態(tài)內(nèi)存分配成功時返回的地址

  • 例外:整數(shù)0可以賦給指針,表示空指針。

  • 允許定義或聲明指向 void 類型的指針。該指針可以被賦予任何類型對象的地址。

例: void *general;

指針空值nullptr

  • 以往用0或者NULL去表達(dá)空指針的問題:

    • C/C++NULL宏是個被有很多潛在BUG的宏。因為有的庫把其定義成整數(shù)0,有的定義成 (void*)0。在C的時代還好。但是在C++的時代,這就會引發(fā)很多問題。

  • C++11使用nullptr關(guān)鍵字,是表達(dá)更準(zhǔn)確,類型安全的空指針

例1 指針的定義、賦值與使用

 1 //sample1.cpp
 2 
 3 #include <iostream>
 4 
 5 using namespace std;
 6 
 7 int main() {
 8 
 9   int i; //定義int型數(shù)i
10 
11   int *ptr = &i; //取i的地址賦給ptr
12 
13   i = 10; //int型數(shù)賦初值
14 
15   cout << "i = " << i << endl; //輸出int型數(shù)的值
16 
17   cout << "*ptr = " << *ptr << endl; //輸出int型指針?biāo)傅刂返膬?nèi)容
18 
19   return 0;
20 
21 }
22 
23 運行結(jié)果:
24 
25 i = 10
26 
27 *ptr = 10

例2 void類型指針的使用

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main() {
 6 
 7 //!void voidObject; 錯,不能聲明void類型的變量
 8 
 9   void *pv; //對,可以聲明void類型的指針
10 
11   int i = 5;
12 
13   pv = &i; //void類型指針指向整型變量
14 
15   int *pint = static_cast<int *>(pv); //void指針轉(zhuǎn)換為int指針
16 
17   cout << "*pint = " << *pint << endl;
18 
19   return 0;
20 
21 }

指向常量的指針

  • 不能通過指向常量的指針改變所指對象的值,但指針本身可以改變,可以指向另外的對象。

   int a;

  const int *p1 = &a; //p1是指向常量的指針

  int b;

  p1 = &b; //正確,p1本身的值可以改變

   *p1 = 1; //編譯時出錯,不能通過p1改變所指的對象

指針類型的常量

  • 若聲明指針常量,則指針本身的值不能被改變。

  int a;

  int * const p2 = &a;

 

  p2 = &b; //錯誤,p2是指針常量,值不能改變

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C語言指針導(dǎo)學(xué)(2)
static_cast<void*> 及 C++字符指針解惑
精心整理的C語言面試題目
C 總結(jié):C 中的const和constexpr
const 用法總結(jié)(C++)
C語言經(jīng)典筆試題(一)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服