欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ const和指針詳情

 更新時間:2021年11月16日 10:45:36   作者:梁唐  
這篇文章主要介紹了C++ const和指針,關(guān)于使用const來修飾指針,有兩種不同的方式。第一種是讓指針指向一個常量對象,這樣可以防止使用該指針進(jìn)行修改指向的值。第二種則是將指針本身聲明為常量,可以防止改變指針指向的位置,下面來看看文章的詳細(xì)內(nèi)容

1、指針和const

我們知道const關(guān)鍵字修飾的是不可變量,將它和指針一起使用,會有很多微妙的地方。

關(guān)于使用const來修飾指針,有兩種不同的方式。第一種是讓指針指向一個常量對象,這樣可以防止使用該指針進(jìn)行修改指向的值。第二種則是將指針本身聲明為常量,可以防止改變指針指向的位置。下面我們來看下細(xì)節(jié)。

1.1 指向常量的指針

首先是指向常量的指針,含義是指針的類型是一個常量類型。所以寫成:

const int * p;


可以理解成p是一個指針,它的類型是const int,也就是常量類型。它既可以用來指向一個常量類型,也可以指向一個非常量類型,下方的這兩種方式都是合法的:

int age = 23;
const int* p = &age;

const double price = 233;
const double* pt = &price;


但是反過來,將一個const類型的變量賦值給一個非const的指針是非法的:

const int age = 23;
int* p = &age; // 非法


如果非要這樣做,可以使用const_cast運算符進(jìn)行強制轉(zhuǎn)換,這個我們會在之后的文章當(dāng)中討論。

另外還有一個很有意思的點,如果我們將一個非const類型的變量賦給了const類型的指針,雖然我們無法通過指針修改對應(yīng)的值,

但是通過變量修改卻是可以的:

int age = 23;
const int* p = &age;

*p = 233; // 非法
age = 233; // 合法


還有,我們無法修改指針指向的值,但是修改指針指向的位置是可以的:

int age = 23;
int price = 233;
const int* p = &age;
p = &price;

1.2 const指針

上面我們介紹了指向const的指針,還有另外一種指針叫做const指針。const指針指的是指針本身是const修飾的,我們無法修改指針指向的位置。

int age = 23;
int* const p = &age;


但是我們修改指針指向的值是可以的:

*p = 2333; // 合法

1.3 指針和內(nèi)容都不可變

當(dāng)然我們也可以將兩種const疊加使用,讓指針指向的對象以及對象的值都不可修改:

const int * const p = &age;

到此這篇關(guān)于C++ const和指針詳情的文章就介紹到這了,更多相關(guān)C++ const和指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

文章轉(zhuǎn)自公眾號:Coder梁(ID:Coder_LT)

相關(guān)文章

  • 一篇文章帶你了解C語言文件操作中的幾個函數(shù)

    一篇文章帶你了解C語言文件操作中的幾個函數(shù)

    這篇文章主要介紹了使用C語言操作文件的基本函數(shù)整理,包括創(chuàng)建和打開以及關(guān)閉文件的操作方法,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • C語言實現(xiàn)餐飲點餐管理系統(tǒng)

    C語言實現(xiàn)餐飲點餐管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)餐飲點餐管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 最新評論