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

深入const int *p與int * const p的區(qū)別詳解(常量指針與指向常量的指針)

 更新時間:2013年06月04日 11:19:30   作者:  
本篇文章是對const int *p與int * const p的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
對于指針和常量,有以下三種形式都是正確的:
復(fù)制代碼 代碼如下:

const char * myPtr = &char_A;//指向常量的指針
char * const myPtr = &char_A;//常量的指針
const char * const myPtr = &char_A;//指向常量的常量指針

下面依次對這三種類型進(jìn)行介紹。
因為*操作符是左操作符,左操作符的優(yōu)先級是從右到左,對于
1.常量指針(Constant Pointers)
復(fù)制代碼 代碼如下:

int * const p

先看const再看* ,是p是一個常量類型的指針,不能修改這個指針的指向,但是這個指針?biāo)赶虻牡刂飞洗鎯Φ闹悼梢孕薷摹?BR>實例1:
復(fù)制代碼 代碼如下:

#include<iostream>
#include<stdlib.h>
using namespace std;
void main()
{
    int i1=30;
    int i2=40;
    int * const pi=&i1;//這里的pi指針式常量。
    //pi=&i2;     //注意這里,pi不能再這樣重新賦值了,即不能再指向另一個新地址。所以我已經(jīng)注釋了它。
    printf("%d\n", *pi ) ;   //輸出是30
    i1=80;     //5.想想看:這里能用*pi=80;來代替嗎?可以,這里可以通過*pi修改i1的值。
    printf("%d\n", *pi ) ;   //輸出是80
    system("pause");
}

實例2:
復(fù)制代碼 代碼如下:

char char_A = 'A';
char char_B = 'B';

char * const myPtr = &char_A;
myPtr = &char_B;    // error - can't change address of myPtr

2.指向常量的指針(Pointers to Constants)
復(fù)制代碼 代碼如下:

const int *p

先看*再看const,定義一個指針指向一個常量,不能通過指針來修改這個指針指向的值。
實例3:
復(fù)制代碼 代碼如下:

#include<iostream>
#include<stdlib.h>
using namespace std;
void main()
{
    int i1=30;
    int i2=40;
    const int * pi=&i1;
    printf("%d\n", *pi ) ;   //輸出是30
    pi=&i2;     //注意這里,pi可以在任意時候重新賦值一個新內(nèi)存地址
    i2=80;     //想想看:這里能用*pi=80;來代替嗎?當(dāng)然不能
    printf("%d\n", *pi ) ;   //輸出是80
    system("pause");
}

實例4
復(fù)制代碼 代碼如下:

char char_A = 'A';
const char * myPtr = &char_A;
*myPtr = 'J';    // error - can't change value of *myPtr

所以指針p所指向的整型數(shù)是一個常量,其值不能被修改。
3.指向常量的常量指針
對于“指向常量的常量指針”,就必須同時滿足上述1和2中的內(nèi)容,既不可以修改指針的值,也不可以修改指針指向的值。
4.引入字符數(shù)組和字符指針
字符數(shù)組和字符指針的定義如下:
復(fù)制代碼 代碼如下:

char a[] = "I Love You!"; //定義了一個字符數(shù)組
char *p = "I Love You!";  //定義了一個字符指針

可以將a理解為常量指針,而p為指向常量的指針,代碼實例如下:
復(fù)制代碼 代碼如下:

#include<iostream>
#include<stdlib.h>
using namespace std;
void main()
{
    char a[] = "I Love You!"; //定義了一個字符數(shù)組,數(shù)組名a是一個常量指針,指向的位置不變,都是數(shù)組第一個元素的位置
    char *p = "I Love You!";  //定義了一個字符指針,指針p指向一個字符串常量,這個字符串常量不能修改
    //*(p+1)='a';//錯誤,不可以修改指針指向的值,所以這里注釋掉。
    a[1]='a';//常量指針,不能修改指針的值,但是可以修改指針?biāo)赶虻闹怠?BR>    //a=p;//錯誤,a是常量指針,不可修改其值。
    cout<<a<<endl;
    cout<<p<<endl;
    cout<<a[1]<<endl;
    cout<<*(p+2)<<endl;
    system("pause");
}

輸出值為:
IaLove You!
I Love You!
a
L
您可能感興趣的文章:

相關(guān)文章

  • 解析c++中參數(shù)對象與局部對象的析構(gòu)順序的詳解

    解析c++中參數(shù)對象與局部對象的析構(gòu)順序的詳解

    本篇文章是對c++中參數(shù)對象與局部對象的析構(gòu)順序進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言基礎(chǔ)解析之分支與循環(huán)語句

    C語言基礎(chǔ)解析之分支與循環(huán)語句

    C語言是一門結(jié)構(gòu)化的程序設(shè)計語言,當(dāng)C語言用來描述生活中的事物時,會用到三種結(jié)構(gòu):順序結(jié)構(gòu)(不去贅述),選擇結(jié)構(gòu)(對應(yīng)分支語句),循環(huán)結(jié)構(gòu)(對應(yīng)循環(huán)語句),分支語句:分支語句分為兩種,一種是if語句,一種是switch語句
    2021-09-09
  • C語言實現(xiàn)簡易的掃雷小游戲

    C語言實現(xiàn)簡易的掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡易的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++類的返回值是*this的成員函數(shù)問題

    C++類的返回值是*this的成員函數(shù)問題

    這篇文章主要介紹了C++類的返回值是*this的成員函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言數(shù)據(jù)結(jié)構(gòu) link 鏈表反轉(zhuǎn)的實現(xiàn)

    C語言數(shù)據(jù)結(jié)構(gòu) link 鏈表反轉(zhuǎn)的實現(xiàn)

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu) link 鏈表反轉(zhuǎn)的實現(xiàn)的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • C語言實現(xiàn)大數(shù)值金額大寫轉(zhuǎn)換的方法詳解

    C語言實現(xiàn)大數(shù)值金額大寫轉(zhuǎn)換的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)大數(shù)值金額大寫轉(zhuǎn)換的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • C++之const限定符詳解

    C++之const限定符詳解

    這篇文章主要為大家介紹了C++之const限定符,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解

    關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解

    今天小編就為大家分享一篇關(guān)于關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問題

    解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問題

    這篇文章主要介紹了解決Microsoft?Visual?C++?2010?Express?運(yùn)行及調(diào)試問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C++枚舉類型enum與enum class的使用

    C++枚舉類型enum與enum class的使用

    這篇文章主要介紹了C++枚舉類型enum與enum class的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論