程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++中指向對象的常指針與指向常對象的指針詳解

C++中指向對象的常指針與指向常對象的指針詳解

編輯:關於C++

C++中指向對象的常指針與指向常對象的指針詳解。本站提示廣大學習愛好者:(C++中指向對象的常指針與指向常對象的指針詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C++中指向對象的常指針與指向常對象的指針詳解正文


指向對象的常指針

將指向對象的指針變量聲明為const型,並使之初始化,如許指針值一直堅持為其初始值,不克不及轉變。

Time t1(10,12,15),t2;
Time * const ptr1=&t1;
ptr1=&t2;

界說指向對象的常指針的普通情勢為

類名    *    const    指針變量=對象地址;

留意應當在界說指針變量時使之初始化


指向對象的常指針變量的值不克不及被轉變,即一直指向統一個對象,但可以轉變其所指向對象中的數據成員(非const型)的值。

常常用常指針作為函數的形參,目標是不許可在函數履行進程中轉變指針變量的值,使其一直指向本來的對象。假如在函數的履行進程中,修正了該形參的值,編譯體系就會湧現毛病,給出失足信息,如許比用人工來包管形參值不被修正更靠得住
指向常對象的指針

假如一個變量曾經被聲明成常變量,則只能用指向常變量的指針變量指向它,而不克不及用普通的(非const型的)指針變量指向它。

const int a;//界說常變量a
const int *p;//界說指向常變量的指針
p=&a;

關於對象也是如斯,假如聲明一個對象為常對象,則只能用指向常對象的指針指向它,而不克不及用普通的(非const型的)指針變量指向它。

const Time t1;//界說常對象
const Time *p;//界說指向常對象的指針
p=t1;

界說指向常對象的指針變量的格局

const    類名    * 指針名;

有以下幾點須要留意:

(1)一個指向常對象的指針是可以指向一個非const型的對象的,然則指向的對象是不克不及經由過程指針來轉變的。

而一個常對象只能由指向常對象的指針指向,詳細看表:

(2)留意指向常對象的指針和指向對象的常指針的差異

Time * const p;//指向對象的常指針
const Time * p;//指向常對象的指針

(3)指向常對象的指針最經常使用於函數的形參,目標是掩護形參指針所指向的對象,使他在函數履行進程中不被修正。

(4)假如界說了一個指向常對象的指針變量,是不克不及經由過程它轉變所指向的對象的值的,然則指針變量自己的值是可以轉變的。

const Time *p=&t1;//界說指向常對象的指針變量p,並指向對象t1
p=&t2;//p改成指向t2,正當

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved