精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C/C++中的指針的應用及注意問題

開發 后端
c語言之所以強大,以及其自由性,很大部分體現在其靈活的指針運用上。因此,說指針是C/C++的靈魂一點也不為過。下面讓我們一起來揭開C/C++中指針的神秘面紗。

指針c/c++學習一個比較讓人頭痛的問題,在程序設計過程中,指針也往往是產生隱含bug的原因。下面就來談談指針的應用以及需要注意的一些問題,里面也許就有你平時沒有注意到的問題,希望能幫助各位讀者理解好指針。

一、我們先來回憶一下指針的概念吧,方便下面的介紹

指針是存放地址值的變量或者常量。例如:int a=1;&a就表示指針常量(“&”表示取地址運算符,也即引用)。int *b,b表示的是指針變量(注意,是b表示指針變量而不是*b),*表示要說明的是指針變量。大家注意int *b[2]和int(*b)[2]是不同的,int *b表示一個指針數組,而int (*b)[2]表示含有兩個元素的int指針,這里要注意運算優先級問題,有助于理解指針問題。在這里大概介紹基本概念就夠了,至于具體使用方法,如賦值等,很多書都有介紹,我就不多說了。

二、應用以及注意的問題

1、 理解指針的關鍵所在——對指針類型和指針所指向的類型的理解

①、 指針類型:可以把指針名字去掉,剩下的就是這個指針

例如:int *a;//指針類型為int *

int **a;//指針類型為int **

int *(*a)[8];//指針類型為 int *(*)[8]

②、 指針所指向的類型:是指編譯器將把那一片內存所看待成的類型。這里只要把指針聲明語句中的指針名字和名字右邊的“*”號去掉就可以了,剩下的就是指針所指向的類型。我之所以把他們放在***位,是因為弄清楚他們是學c/c++指針的重點,正確理解他們才能使你打好c/c++的編程基礎。

2、 指針的應用——傳遞參數。

其實它可以相當于隱式的返回值,這就比return的方法更加靈活了,可以返回更多的值,看看下面的例子自然就明白了:

 

  1. #include "iostream.h"  
  2. void example(int *a1,int &b1,int c1)  
  3. {  
  4. *a1*=3;  
  5. ++b1;  
  6. ++c1;  
  7. }  
  8. void main()  
  9. {  
  10. int *a;  
  11. int b,c;  
  12. *a=6;  
  13. b=7;c=10;  
  14. example(a,b,c);  
  15. cout 《"*a="《*a<  
  16. cout 《"b="<  
  17. cout 《"c="<  

 輸出:*a=18

b=8

c=10

注意到沒有,*a和b的值都改變了,而c沒有變。這是由于a1是指向*a(=6)的指針,也即與a是指向同一個地址,所以當a1指向的值改變了,*a的值也就改變了。在函數中的參數使用了引用(int &b1),b1是b的別名,也可以把它當作特殊的指針來理解,所以b的值會改變。函數中的參數int c1只是在函數中起作用,當函數結束時候便消失了,所以在main()中不起作用。

3、 關于全局變量和局部變量的一個問題

先看看程序:

 

  1. #include “iostream.h”  
  2. int a=5;  
  3. int *example1(int b)  
  4. {  
  5. a+=b;  
  6. return &a;  
  7. }  
  8. int *example2(int b)  
  9. {  
  10. int c=5;  
  11. b+=c;  
  12. return &b;  
  13. }  
  14. void main()  
  15. {  
  16. int *a1=example1(10);  
  17. int *b1=example2(10);  
  18. cout 《”a1=”《*a1<  
  19. cout 《”b1=”《*b1<  

 輸出結果:

a1=15

b1=4135

*b1怎么會是4135,而不是15呢?是程序的問題?沒錯吧?由于a是全局變量,存放在全局變量的內存區,它一直是存在的;而局部變量則是存在于函數的棧區,當函數example2調用結束后便消失,是b指向了一個不確定的區域,產生指針懸掛。

下面是對example1和example2的反匯編(用TC++ 3.0編譯):

example1:

push bp;入棧

mov bp,sp

mov ax,[bp+04];傳遞參數

add [00AA],ax;相加

mov ax,00AA ;返回了結果所在的地址

pop bp;恢復棧,出棧

ret;退出函數

example2:

push bp;入棧

mov bp,sp

sub sp,02

mov word ptr [bp-02],0005

mov ax,[bp-02];傳遞參數

add [bp+04],ax;相加

lea ax,[bp+04];問題就出在這里

mov sp,bp

pop bp;恢復棧,出棧

ret;退出函數

對比之后看出來了吧?ax應該是存儲的是結果的地址。而在example2中,返回的卻是[bp+04]的內容,因此指針指向了一個不確定的地方,由此產生的指針懸掛。example1中,ax返回了正確的結果的地址。

4、 內存問題:使用指針注意內存的分配和邊界

使用指針過程中應該給變量一個適當的空間,以免產生不可見的錯誤。

請看以下代碼:

 

  1. #include “iostream.h”  
  2. void main()  
  3. {  
  4. char *a1;  
  5. char *a2;  
  6. cin 》a1;  
  7. cin 》a2;  
  8. cout 《”a1=”<  
  9. cout 《”a2=”<  
  10. }  

 輸入:abc

123

輸出:

a1=123

a2=

Null pointer assignment

指針指向了“空”。解決辦法就是分配適當的內存給這兩個字符串。修正后的代碼

如下:

 

  1. #include “iostream.h”  
  2. void main()  
  3. {  
  4. char *a1;  
  5. char *a2;  
  6. a1=new char [10];  
  7. a2=new char [10];  
  8. cin 》a1;  
  9. cin 》a2;  
  10. cout 《”a1=”<  
  11. cout 《”a2=”<  
  12. delete(a1);//注意,別忘了要釋放內存空間  
  13. delete(a2);  
  14. }  

 到此就能輸出正確的結果了。分配了適當的內存之后要注意釋放內參空間,同時還應該注意不要超出所分配的內存的大小,否則會有溢出現象產生,導致不可預料的結果。

5、 關于特殊的指針——引用

引用有時候應用起來要比指針要靈活,用它做返回的時候是不產生任何變量的副本的這樣減小了內存的占用,提高執行的速度。引用使用起來要比指針好理解,比較直觀。當引用作為參數時,不會改變參數的地址,因此可以作為左值。

下面請看一個例子:

 

  1. #include “iostream.h”  
  2. char ch[5]=”ABCD”;  
  3. char &example(int b)  
  4. {  
  5. return ch;  
  6. }  
  7. void main()  
  8. {  
  9. cout 《”ch=”<  
  10. example(2)=”c”;  
  11. cout《”ch=”<  

 輸出結果:

ch=ABCD

ch=ABcD

在實際編程過程中,可以靈活地引用或指針,盡量提高程序的可讀性和執行效率。

三、小結:

指針是學習c/c++的重點難點,主要原因是指針較為抽象,不容易理解。使用指針千萬要明白讓指針指向什么地方,如何讓指針指向正確的地方。在深入系統底層之中需要應用到大量的指針,因此需要理解好指針的基本概念,例如:指針類型和指針所指向的類型。平時應該對留心觀察,了解程序的工作過程,必要時候可以對程序進行反匯編,加深對指針的理解,這種方法同樣適合學別的編程方面的知識。

指針的應用是很廣泛的,利用指針可以做很多事情,要成為一個好的程序員,必須對指針有比較深刻的了解。希望通過本文讓大家對指針有更深一層的了解,提高指針的應用能力,相信能給大家一定的幫助。

【編輯推薦】

  1. 22.8 函數類型和函數指針類型
  2. 9.8.1 理解指向指針的指針
  3. 9.4.3 用指針操作數組元素
  4. C++函數對象與函數指針不同之處
責任編輯:于鐵 來源: 中國IT實驗室
相關推薦

2011-04-11 11:09:50

this指針

2011-04-19 16:38:00

對象指針指針C++

2011-04-19 09:19:09

C++指針

2024-01-09 09:23:12

指針C++

2023-12-20 12:40:51

C++RAII編程

2024-05-15 16:01:04

C++編程開發

2011-07-12 13:01:00

CC++

2014-01-24 09:49:01

C++指針

2010-02-04 09:33:08

C++指針重載

2015-05-13 10:37:58

C++指針與引用

2010-12-17 10:07:59

2023-12-26 12:13:31

野指針C++編程

2023-09-13 14:42:08

typedefC++

2021-12-21 15:31:10

C++語言指針

2024-01-25 11:42:00

C++編程指針常量

2011-07-15 01:38:56

C++this指針

2023-09-13 11:51:16

位域C++

2010-01-27 16:05:06

C++堆棧

2010-01-21 09:34:57

C++語法

2010-02-05 14:36:20

C++智能指針
點贊
收藏

51CTO技術棧公眾號

在线观看污视频| 国产美女被下药99| 欧美bbbbb性bbbbb视频| 亚洲人免费短视频| 亚洲品质自拍视频| 国产欧美日韩亚洲| 国产一区免费看| 91精品久久久久久久久久不卡| 精品国产区一区| 日本美女高潮视频| 免费毛片在线看片免费丝瓜视频 | 中文字幕人妻一区二区三区在线视频| 日本免费成人| 污片在线观看一区二区| 亚洲一区3d动漫同人无遮挡| 亚洲成a人片77777精品| 日韩av电影一区| 国内精品久久久久久影视8| 少妇一级黄色片| 欧美在线导航| 欧美大片免费久久精品三p| 99999精品视频| 国产精品探花在线| 综合久久综合久久| 欧美一级日本a级v片| 日韩一区免费视频| 精品写真视频在线观看 | 日韩欧美三级视频| 欧美久久视频| 久久亚洲一区二区三区四区五区高| 天天插天天射天天干| 日本一区二区三区播放| 欧美日韩精品综合在线| 国产淫片免费看| 精品精品导航| 一区二区三区在线视频观看58| 亚洲不卡中文字幕| 手机看片一区二区| 成人综合婷婷国产精品久久蜜臀| 国产日韩av在线| 日韩精品成人免费观看视频| 999在线观看精品免费不卡网站| 欧美大肥婆大肥bbbbb| 少妇视频一区二区| 欧美wwwww| 中文字幕亚洲一区| 久久久国产一级片| 欧美成人激情| 色777狠狠综合秋免鲁丝| 美女爆乳18禁www久久久久久| 欧美调教在线| 亚洲欧美国产日韩中文字幕| 国产亚洲无码精品| 亚洲欧美tv| 亚洲乱码av中文一区二区| 真人bbbbbbbbb毛片| 日韩系列在线| 亚洲欧美日韩精品久久| aaaaa级少妇高潮大片免费看| 香蕉一区二区| 亚洲欧洲视频在线| 成人做爰69片免网站| 成人激情开心网| 在线色欧美三级视频| 成人黄色短视频| 亚洲国产精品综合久久久| 久久中文精品视频| 欧美成人精品欧美一级私黄| 欧美日韩ab| 8x拔播拔播x8国产精品| 一二美女精品欧洲| 97精品伊人久久久大香线蕉 | 日韩小视频在线观看| 久久久久久久久久久久| 国产99久久| 在线精品高清中文字幕| 男人天堂资源网| 五月天久久久| 欧美大片第1页| 日本一级淫片免费放| 国产亚洲精品v| 国产精品久久久久久久久久久久久| 国产成人综合欧美精品久久| 久久先锋影音| 国产中文欧美精品| 亚洲国产综合网| av一区二区三区四区| 欧美精品亚洲精品| 麻豆视频在线观看免费网站| 一区二区三区四区国产精品| 韩国无码av片在线观看网站| 8x8ⅹ拨牐拨牐拨牐在线观看| 精品露脸国产偷人在视频| 粉嫩虎白女毛片人体| 欧美高清免费| 亚洲成人av片在线观看| 欧美丰满美乳xxⅹ高潮www| 国产精品久久天天影视| 97视频在线观看免费高清完整版在线观看 | 国产性生活一级片| baoyu135国产精品免费| 伊人伊成久久人综合网小说| 麻豆亚洲av熟女国产一区二| 欧美亚洲免费| 亚洲va男人天堂| 视频一区二区在线播放| 成人欧美一区二区三区黑人麻豆| 国产九九九九九| 人人精品久久| 日韩精品在线免费| 欧美做爰啪啪xxxⅹ性| 一区二区三区导航| 91精品视频在线免费观看| 免费观看国产精品| 亚洲欧洲日韩一区二区三区| 国产成人无码精品久久久性色| 欧美一区二区三区婷婷| 日韩精品福利网站| h色网站在线观看| 久久五月激情| 国产伦精品一区二区三区视频免费 | 成人h版在线观看| 一本—道久久a久久精品蜜桃| 妞干网免费在线视频| 91麻豆精品久久久久蜜臀| 国产精品无码久久久久一区二区| 欧美一区高清| 国产欧美在线看| 久草视频视频在线播放| 亚洲国产综合91精品麻豆| 高潮一区二区三区| 国内精品伊人久久久| 午夜免费在线观看精品视频| 一本色道久久综合无码人妻| 久久毛片高清国产| 国产精品专区在线| 精品成人18| xxxx性欧美| 一起草av在线| 国产精品午夜在线| 老熟妇仑乱视频一区二区| 清纯唯美亚洲经典中文字幕| 欧美激情欧美激情| 国产成人久久精品77777综合 | 97久久中文字幕| 中文字幕欧美精品日韩中文字幕| 亚洲天堂一区在线| 99精品热视频| 自慰无码一区二区三区| 香蕉国产成人午夜av影院| 91国产美女视频| 无码精品人妻一区二区| 亚洲成人自拍一区| 免费不卡的av| 美女精品在线| 色姑娘综合av| 中文字幕日本一区| 久久香蕉频线观| 精品人妻久久久久一区二区三区| 樱桃视频在线观看一区| 手机看片国产精品| 综合一区av| 国产精品区免费视频| 97人澡人人添人人爽欧美| 亚洲黄色有码视频| 三级视频在线观看| 国产日韩欧美不卡在线| 国产福利在线免费| 在线成人超碰| 久久大片网站| 91看片一区| 久久精品电影网站| 丰满少妇一级片| 一本一本大道香蕉久在线精品 | 成人h视频在线| www在线视频| 亚洲成av人乱码色午夜| 日韩黄色一级大片| 久久精品一区四区| 久久久精品高清| 亚洲黑丝一区二区| 欧美精品一区在线发布| 99蜜月精品久久91| 欧美成人精品激情在线观看| 人人妻人人澡人人爽精品日本| 欧美日韩一区免费| 精品少妇一区二区三区密爱| 成人在线一区二区三区| 午夜精品久久久内射近拍高清| 色无极亚洲影院| 成人在线免费观看一区| 日本综合字幕| 欧美精品video| 国产在线视频网址| 日韩欧美久久一区| 青青视频在线免费观看| 亚洲欧美另类图片小说| 国产黄色网址在线观看| 国产一区二区三区综合| 国产aaa一级片| 欧美国产91| 日韩一区二区三区资源| 99ri日韩精品视频| 国产精品中文久久久久久久| 爱啪啪综合导航| 久久精品免费电影| 免费av在线电影| 日韩一区二区三区电影在线观看| 久久人妻免费视频| 亚洲一区二区三区在线看| 国精产品一区一区| 91女厕偷拍女厕偷拍高清| 三日本三级少妇三级99| 天堂午夜影视日韩欧美一区二区| 青草全福视在线| 欧美顶级大胆免费视频| 久久久精彩视频| 国产成人夜色高潮福利影视 | 日韩av网址大全| 亚洲一区二区免费在线| 91精品店在线| 日本韩国欧美精品大片卡二| 黄色在线观看视频网站| 久久精品一本久久99精品| 邻家有女韩剧在线观看国语| 亚洲成人a级网| 亚洲第一免费视频| 91精品国产一区二区三区蜜臀 | 亚洲精品videossex少妇| 99久久婷婷国产一区二区三区| 欧美性感一区二区三区| 香蕉影院在线观看| 亚洲不卡av一区二区三区| 一区二区在线观看免费视频| 自拍偷拍亚洲综合| 久久视频一区二区三区| 国产精品视频九色porn| 熟女少妇一区二区三区| 91麻豆免费视频| 国产精品一区二区人妻喷水| 成人性生交大合| 潘金莲一级淫片aaaaaaa| 国产精品夜夜爽| 少妇性l交大片7724com| 国产精品综合视频| 天天色天天干天天色| 激情欧美日韩一区二区| 天美一区二区三区| 国产精品中文字幕日韩精品| 九九热精品国产| 久久成人免费电影| 天堂在线中文在线| 国产一区二区福利| 日本成人在线免费观看| 高清免费成人av| www.17c.com喷水少妇| 成人黄页在线观看| 亚洲欧美日本一区| 久久综合网色—综合色88| 91成年人网站| 亚洲国产精品v| 疯狂试爱三2浴室激情视频| 亚洲精品国久久99热| 久久久久亚洲av成人片| 精品日本高清在线播放 | 美洲精品一卡2卡三卡4卡四卡| 日韩一中文字幕| 日本乱理伦在线| 久久久综合av| 欧美最新精品| 成人黄色av免费在线观看| 日韩免费精品| 久久爱av电影| 日韩精品免费一区二区在线观看 | caopo在线| 97国产精品久久| 无人区在线高清完整免费版 一区二| 国产精品久久久久久久久久小说| 国产免费av国片精品草莓男男| 国产精品久久久久久久久婷婷| 亚洲国产合集| 国产系列第一页| 亚洲深夜影院| 91视频这里只有精品| 成人国产在线观看| 中文字幕有码在线播放| 亚洲欧美一区二区三区国产精品| 精品一区免费观看| 欧美最猛性xxxxx直播| www.成人在线观看| 亚洲欧美中文在线视频| 超碰在线最新| 青草青草久热精品视频在线观看| 一级欧美视频| 久久久人人爽| 在线一区电影| 99免费视频观看| 成人做爰69片免费看网站| 久久中文字幕精品| 亚洲一本大道在线| 一卡二卡三卡在线观看| 亚洲国产精品一区二区久| 成年人在线看| 91av在线网站| 亚洲国产欧美国产第一区| 日韩免费av电影| 亚洲经典在线看| 国产永久免费网站| 久久精品日产第一区二区三区高清版 | 午夜剧场高清版免费观看| 91香蕉视频在线| 国产极品国产极品| 欧美日韩色一区| 可以在线观看的av| 国外成人在线视频| 精品国产一级| 欧美日韩在线免费观看视频| 久久精品五月| 中文字幕 亚洲一区| 亚洲永久免费av| 国产精品亚洲lv粉色| 国产一区二区三区直播精品电影| 精品人人视频| 国产在线一区二区三区播放| 牛夜精品久久久久久久99黑人| 91精品无人成人www| 久久久夜色精品亚洲| 国产一区二区三区影院| 337p日本欧洲亚洲大胆精品| 综合久久2019| 91热福利电影| 久久久9色精品国产一区二区三区| 九热视频在线观看| 91亚洲国产成人精品一区二区三| 免费又黄又爽又色的视频| 欧美一区三区四区| 最新av在线播放| 99国产精品久久久久老师| 亚洲精品网址| 污视频在线观看免费网站| 一区在线中文字幕| 国产又粗又猛又色又| 久久精品国产久精国产一老狼| 亚洲国产伊人| 在线观看三级网站| 国产在线播放一区二区三区| 岛国毛片在线观看| 日韩午夜激情av| 午夜在线激情影院| 成人三级在线| 99香蕉国产精品偷在线观看 | 四虎成人av| 性生生活大片免费看视频| 亚洲婷婷在线视频| www.香蕉视频| 97视频在线观看免费高清完整版在线观看| 久久精品66| 日本在线观看a| 日本一区二区三区免费乱视频| 波多野结衣电车痴汉| 少妇高潮 亚洲精品| 亚洲精品乱码日韩| 欧美另类videosbestsex日本| 成人av免费在线| 久草视频在线观| 尤物九九久久国产精品的特点| 丁香婷婷久久| 日韩精品免费一区| 99re这里只有精品首页| 中文字幕 日韩有码| 久久久精品999| 国产精品一区二区中文字幕| 欧美 日韩 国产在线观看| 欧美国产精品一区| 99精品久久久久久中文字幕| 欧美激情亚洲自拍| 女人丝袜激情亚洲| 日韩av加勒比| 欧美性猛交xxxx黑人| 久操视频在线| 国产综合色一区二区三区| 日韩福利视频导航| 五月天激情丁香| 日韩成人中文字幕在线观看| 97精品国产综合久久久动漫日韩 | 亚洲一区精品视频| 国产成人精品免费| 久久久精品毛片| 美女av一区二区| 精品在线手机视频| 日韩精品在线播放视频| 欧美性色xo影院| 97caopron在线视频| 欧美日韩无遮挡| 国产精品一区二区久激情瑜伽| 日本熟女毛茸茸| 欧美成人免费在线观看| 国产探花在线精品| 97中文字幕在线观看| 欧美日韩精品一区视频|