小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

[原創(chuàng)] 程序員面試寶典:第七章 指針與引用

 落塵伊人 2019-03-15

1. 指針 vs. 引用

  • 非空區(qū)別:    引用不能為 NULL
  • 合法性:        引用永遠(yuǎn)合法
  • 可修改區(qū)別:引用的指向只能初始化,不能修改
  • 存儲空間區(qū)別:引用不是變量,本身并不占用任何存儲空間
  • 應(yīng)用區(qū)別:    根據(jù)上述特點(diǎn),決定應(yīng)用場景
2. 指針作為函數(shù)參數(shù):void fun ( char * p);fun(str);
  • *p 只是str的副本,雖然與str指向相同,可以修改str指向地方的內(nèi)容,但不能修改str的指向!函數(shù)返回時,*p消失??梢杂靡韵路椒?,改變str的指向。
    • void GetMemory ( char ** p)
    • char * GetMemory ( char * p)
 
3. 數(shù)組與指向常量的指針:
  • char a[] = "abc"    局部數(shù)組
  • char *a = "abc"    局部指針,指向數(shù)據(jù)區(qū)字符串常量,這個常量不可修改!
4. 指針相減結(jié)果為“元素個數(shù)”,而不是真正地址空間的差:
  • int *p, *q; q-p; 相當(dāng)于 (p指向的地址)-(q指向的地址)/ sizeof(int)
  • 不同類型的指針不能相減!
5. 類中的函數(shù)對于類中變量的引用,采用的是相對于類的偏移地址的方式(并不是通過變量名匹配的)。
 
6. 函數(shù)指針: void ( * fun) ( void )
  • Int ( * ( *F ) (int, int) ) ( int )
    • F 指向函數(shù) A
    • A:兩個int參數(shù),返回一個函數(shù)指針B
    • B:指向函數(shù)C
    • C:一個int參數(shù),int返回值
7. 指針數(shù)組與數(shù)組指針:
  • 指針數(shù)組:int *p[]    一個數(shù)組,里邊的元素都是指針
  • 數(shù)組指針:int (*p)[]    一個指針,指向一個數(shù)組,指針加1,則指向下一個數(shù)組(移動整個數(shù)組長度)!
  • 主要看p和[]結(jié)合(是數(shù)組),還是與*結(jié)合(是指針),默認(rèn)[]有優(yōu)勢
  • float (**def)[10]:def 指向(指向 float[10] 的指針)
  • float *(*def)[10]:def 指向(float * [10] 數(shù)組)
8. 數(shù)組名就是數(shù)組首地址(并且是常量,不可改變??!),對數(shù)組名取地址,得到的是數(shù)組指針
  • int a[10];    int *ptr = (int *)(&a + 1);    ptr指向a中最后一個元素之后
9. delect p;    釋放p所指向的內(nèi)存區(qū)域,但是沒有改變p的指向??!需要p = NULL;    空指針
 
 
10.  兩種動態(tài)內(nèi)存分配方式:
  • malloc / free:分配內(nèi)存的函數(shù),需要給出具體分配內(nèi)存的大小,不運(yùn)行構(gòu)造/析構(gòu)函數(shù)
  • new / delete:C++運(yùn)算符,分配內(nèi)存,自動計(jì)算分配內(nèi)存的大小,且運(yùn)行相應(yīng)的構(gòu)造/析構(gòu)函數(shù)
 
11. 句柄:32位 int,windows 對象物理地址的索引,指向指針的指針。
  • 句柄地址(穩(wěn)定)-> 記載著對象在內(nèi)存中的地址 -> 對象在內(nèi)存中的地址(不穩(wěn)定)-> 實(shí)際對象
12. 管理指針成員 (類中的指針成員的復(fù)制控制,解決多個類對象共享一個指針的問題)
  • 具有指針成員的對象一般需要定義復(fù)制控制成員
  • 常規(guī)指針:共享,無法防止懸垂
  • 智能指針:共享,通過計(jì)數(shù)類,記錄有多少對象共享一個指針(不能用static,因?yàn)?span>不同對象(如基類和子類)可以有相同指針),在最后一個共享對象消除之后,計(jì)數(shù)類負(fù)責(zé)指針的撤銷。
 

 
  • 值型類:將指針成員所指的基礎(chǔ)值的副本給每個對象。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多