指針是 “ 指向 ” 另外一種類型的復合類型。
與引用(reference)不同之處在于:
指針本身就是一個對象,允許對指針進行復制和拷貝,而且在其生命周期內可以先后指向幾個不同的對象;
指針無需在定義是賦予初值,此時它將擁有一個不確定值。但是建議初始化所有指針,這樣可以避免一些不必要的錯誤。
注意:
試圖拷貝或以其他方式訪問無效指針的值都將引發錯誤,但是編譯器并不負責檢查此類錯誤!
第2、3種形式的指針是有效的,但是同樣受到限制, 試圖訪問此類指針對象的行為也是不允許的!
指針存放某個對象的地址,要獲得該地址需要取地址符(&).
int ival = 5;int *p = &ival; // p存放變量ival的地址、或者說p是指向變量ival的指針
一般情況下,指針的類型需要與它所指的對象嚴格匹配!
指針指向了一個對象,則允許使用解引用符(*)訪問該對象.
int ival = 5;int *p = &ival;cout << *p;
空指針不指向任何一個對象,在試圖使用一個空指針之前可以首先檢查其是否為空.
幾種生成空指針的方法:
int *p1 = nullptr; // C++11新標準, 最好使用新標準int *p2 = 0;int *p3 = NULL; // 需要cstdlib,等價于上一種方法
不能直接將int變量賦給指針,即使變量值為0
void*是一種特殊的指針類型,可用于存放容易對象的地址.
指針是一個對象,與其他對象一樣也有自己的地址,因此允許吧指針的地址再放到另外一個指針去.
int ival = 2;int *pi = &ival;int **ppi = π
解引用得到ival的值:
cout << *pi << endl;cout << **ppi << endl;
引用本身不是一個對象,因此不能定義指向引用的指針;但是指針時對象,所以可以存在指向指針的引用。
int ival = 2;int *p; // p是一個int型指針int *&r = p; // r是一個對指針p的引用r = &ival; // r引用了指針p,該語句為令p指針指向ival*r = 0; // 解引用得到ival, 該語句為將ival的值改為0
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
手機怎么進入路由器修改路由器參數?除了用電腦修改路由器參數,我們還可以用手機來配置。這里用紅米Not手機怎么改ip地址?可以修改。以OPPO R9S手機為例,修改手機IP地址的方法如下:首先,單擊 "設置 "OPPO R9S手機桌面圖標。第二,進入設置后,選擇 "無線局域網 "選項。第三,然后點擊當前連接的網絡進入。請問怎樣來更改QQ上顯示的地理位置?這可以 不要修改。這是騰訊根據用戶的IP地址判...
蘋果13拍月亮專業模式參數?進入蘋果相機的專業模式中設置外景拍攝的參數,即可拍攝好出清晰的月亮,也可以不再次進入夜景模式,使用自定義的設置來拍攝好出清晰的月亮。專業模式拍攝好法:點擊ISO,對感光度通過可以設置。系統設置感光度參數將感光度ISO由不自動設置成400~800之間,直接點擊拍攝按鈕對月亮進行拍攝好,即可拍攝好出清晰的月亮。iphone14拍月亮焦距不夠?1.把蘋果新機打向月亮,然后再就...
星號密碼顯示器?當我們輸入密碼時,它正在竊取代碼,特別是在互聯網上,它會自動變為星號,對嗎?星號密碼查看器是用來查看這些內容的。我告訴你如何使用XP的XP星號密碼查看器。單擊“開始檢測”后,我將指針指向adept。如果密碼框將顯示星號所代表的,我看不到空白等待密碼。此外,“網絡連接”對話框中的“請單擊此處更改密碼”不起作用。要查看密碼,需要ADSL密碼查看器。C語言加密碼變成星號?#包括和限制。H...