亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++入門(2)——指針

2019-11-06 06:57:44
字體:
來源:轉載
供稿:網友

地址

計算機程序在存儲數據時必須跟蹤以下3個屬性

信息存儲在何處存儲的值為多少存儲的信息是什么類型 之前我們使用過另一種策略來達到上述目的:定義一個簡單變量,聲明語句指出了值的類型和符號名,還讓程序為值分配內存,并在內部跟蹤該內存單元 下面來看另一種策略,它在開發C++類時非常重要。這種策略以指針為基礎,指針是一個變量,其存儲的是值的地址,而不是值本身。在討論指針之前,我們先看一看如何找到常規變量的地址。只需要對變量應用地址運算符&, 就可以獲得它的位置 #include <iostream> int main() { using namespace std; int a = 6; double b = 4.5; cout << "a value = " << a; cout << " and a address is " << &a << endl; cout << "b value = " << b; cout << " and b address is " << &b << endl; return 0; }

輸出如下,顯示地址時,該實現的cout使用十六進制法,因為這時常用于描述內存的表示法。

a value = 6 and a address is 0x7ffedf68996cb value = 4.5 and b address is 0x7ffedf689970

指針與C++基本原理

面向對象(OOP)與傳統過程性編程的區別在于,OOP強調的是在運行階段決策,這樣更靈活。如在C++中聲明數組,必須指定數組長度,這就是編譯階段決策。而下文就就會提到,C++通過OOP使用關鍵字new請求正確數量正確的內存以及使用指針表來跟蹤新分配的內存的位置。

#include <iostream> int main() { using namespace std; int updates = 6; // declare a variable int * p_updates; // declare pointer to an int p_updates = &updates; // assign address of int to pointer //exPRess values two ways cout << "Values: updates = " << updates; cout << ", *p_updates = " << *p_updates << endl; //express values two ways cout << "Addresses: &upadates = " << &updates; cout << ", p_updates = " << updates << endl; //use pointer to change value *p_updates = *p_updates + 1; cout << "Now updates = " << updates << endl; return 0; }

輸出如下,從中可以知道int變量updates和指針變量p_updates 只不過是同一枚硬幣的兩面。變量updates表示值,并使用& 運算符來獲得地址: 而變量p_updates表示地址,并使用*運算符來獲得值。由于p_updates指向updates,因此*updates 和updates完全等價(譯者注: 如果覺得這里有點繞,先把指針當作語法糖,后面的文章會詳細介紹)。

Values: updates = 6, *p_updates = 6Addresses: &upadates = 0x7fffa344041c, p_updates = 6Now updates = 7

聲明和初始化指針

計算機需要跟蹤指針指向的值的類型,因此在指針聲明時必須指定指針指向的數據的類型,例如

int *p_updates

需要注意的是,對每個指針變量名,都需要使用一個*

int *p1, p2;

如果這樣聲明,就創建一個指針p1和一個int變量p2。(譯者注:p1前面的int,不代表p1是一個int。指針和數組一樣,都是基于其他類型的) 可以在聲明語句中初始化指針

#include <iostream> int main() { using namespace std; int a = 5; int *pointer = &a; cout << a <<"; address = "<< &a << endl; cout << *pointer <<"; value of pointer = "<< pointer << endl; return 0; }

輸出如下

5; address = 0x7ffccfb23a2c 5; value of pointer = 0x7ffccfb23a2c

可以看出,程序將pointer 初始化為變量a的地址。注意: 在不同的系統上,顯示的地址可能不同,顯示格式也可能不同,這里僅供參考。

指針的危險

在C++中創建指針時,計算即將分配用來存儲地址的內存,但不會分配用來儲存指針所指向的數據的內存。

long * fellow; // create a pointer to long *fellow = 233333;

fellow確實是一個指針,但上述代碼沒有將地址賦值給fellow,那么233333將被放在哪里呢?我們不知道,由于fellow沒有被初始化,它可能有任何值。不管值是什么,程序都將它解釋為存儲233333的地址,如果fellow的值碰巧為1200,計算機將把數據放在地址1200上,即使這恰巧是程序代碼的地址。這種錯誤可能導致一些最隱匿的錯誤


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲图片欧洲图片av| 欧美中文字幕在线视频| 搡老女人一区二区三区视频tv| 国产精品草莓在线免费观看| 欧美贵妇videos办公室| 国产综合视频在线观看| 国产精品v日韩精品| 亚洲视频在线免费看| 久久精品视频导航| 国产视频自拍一区| 国产精品福利片| 91伊人影院在线播放| 久久久久久久97| 国产欧美亚洲视频| 久久久久久久一区二区| 亚洲性线免费观看视频成熟| 日韩av在线导航| 国产成人一区二区三区电影| 亚洲精品一区二区网址| 欧美一级在线亚洲天堂| 久久深夜福利免费观看| 国产精品久久久久久久久借妻| 国产99久久精品一区二区永久免费| 国产精品99久久99久久久二8| 欧美巨大黑人极品精男| 九九久久国产精品| 国产成人久久精品| 最近2019中文字幕一页二页| 久热精品视频在线观看一区| 久久久成人精品视频| 国产精品成人免费视频| 91亚洲精品视频| 亚洲午夜精品久久久久久性色| 91夜夜未满十八勿入爽爽影院| 国产精品日韩一区| 久久韩剧网电视剧| 色悠久久久久综合先锋影音下载| 91精品国产精品| 国产精品jizz在线观看麻豆| 欧美贵妇videos办公室| 日韩有码在线电影| 成人写真福利网| 91丨九色丨国产在线| 日韩av综合网站| 久久亚洲精品视频| 日韩综合视频在线观看| 国产成人在线视频| 欧美日韩视频在线| 亚洲美女又黄又爽在线观看| 亚洲网站在线观看| 欧美一级淫片aaaaaaa视频| 日本中文字幕久久看| 日韩免费高清在线观看| 国产欧美日韩丝袜精品一区| 91高潮精品免费porn| 国产999精品视频| 欧美精品999| 精品国产自在精品国产浪潮| 91精品综合久久久久久五月天| 国产91精品视频在线观看| 成人久久精品视频| 欧美另类在线观看| 久久精品国产一区二区三区| 秋霞av国产精品一区| 亚洲第一av在线| 国产一区二区日韩精品欧美精品| 国产成人涩涩涩视频在线观看| 91免费看视频.| 国产日韩欧美91| 国产免费观看久久黄| 久久国产精品电影| 亚洲国产精品人久久电影| 日韩欧美一区二区三区| 国产成人一区二区三区| 国产在线观看一区二区三区| 深夜成人在线观看| 国内外成人免费激情在线视频网站| 精品久久久久久久久久久| 日本aⅴ大伊香蕉精品视频| 最近2019中文字幕大全第二页| 久久久久久国产免费| 一区二区三区四区视频| 2019中文字幕全在线观看| 国产ts人妖一区二区三区| 欧美成人四级hd版| 国产精品成人观看视频国产奇米| 欧美日韩国内自拍| 亚洲精品视频中文字幕| 91日本在线视频| 国语自产在线不卡| 亚洲欧洲国产一区| 91色精品视频在线| 欧美另类老肥妇| 欧美性在线观看| 午夜精品蜜臀一区二区三区免费| 亚洲色图五月天| 国产精选久久久久久| 92裸体在线视频网站| yellow中文字幕久久| 国产日韩欧美自拍| 奇米4444一区二区三区| 久久91精品国产91久久跳| 亚洲激情在线观看| 久久久久五月天| 成人免费网站在线看| 亚洲欧美日韩国产精品| 成人a视频在线观看| 国产精品美乳在线观看| 亚洲人成77777在线观看网| 国产精品流白浆视频| 亚洲国产成人久久| 精品无码久久久久久国产| 国产91露脸中文字幕在线| 久久久精品国产亚洲| 国产精品一区二区av影院萌芽| 中文字幕久热精品在线视频| 91久热免费在线视频| www.日韩系列| 久久夜色精品国产亚洲aⅴ| 亚洲xxxx做受欧美| 少妇精69xxtheporn| 最好看的2019年中文视频| 国产成人亚洲综合青青| 日本91av在线播放| 黑人巨大精品欧美一区二区免费| 国产精品偷伦一区二区| 欧美人与物videos| 久久躁狠狠躁夜夜爽| 精品国产视频在线| 国产精品午夜国产小视频| 欧美在线xxx| 97久久精品视频| 在线观看视频亚洲| 中文字幕在线亚洲| 亚洲丝袜一区在线| 亚洲欧洲一区二区三区在线观看| 97视频在线观看视频免费视频| 一本一道久久a久久精品逆3p| 国产欧美精品一区二区三区-老狼| 97国产精品视频| 国产精品免费视频xxxx| 久久久国产视频| 亚洲欧洲在线视频| 欧美日韩美女在线| 日韩国产高清污视频在线观看| 国产精品九九久久久久久久| 日本精品免费一区二区三区| 亚洲人成电影在线播放| 亚洲天堂第二页| 欧美xxxx做受欧美| 4k岛国日韩精品**专区| 久久久久久久香蕉网| 久久亚洲精品小早川怜子66| 欧洲日韩成人av| 久久福利视频导航| 最近2019中文字幕mv免费看| 78m国产成人精品视频| 日韩一区二区欧美| 91精品久久久久久久久| 亚洲国产精品久久| 日韩美女主播视频| 国产成人精品日本亚洲专区61| 最好看的2019年中文视频| 国内外成人免费激情在线视频|