1. 程式人生 > 其它 >int *const p,const int *p和int const *p的區別

int *const p,const int *p和int const *p的區別

原文地址:https://blog.csdn.net/u013412497/article/details/24495271

在學習c語言的過程中,可能我們很少見到int int *const p,const int *p和int const *p,但當我們在學習c++的過程中,就會遇到這些模糊不清的概概念,如果沒搞清楚它們的區別,我們在使用過重中會很痛苦,但如果我們搞懂了它們之間的區別之後,用起來非常方便。

首先int const*p=const int *p;都表示*p的值不能改變,而p(即地址)是可以改變的;

#include<iostream>
using namespace std;
int main() { int a=100; int* const c=&a; cout<<*c<<endl; const int *d=&a; cout<<*d<<endl; } //輸出的值都是100

至於int *const p;

恰恰和上面的相反,即int *const p表示 p(地址)是常量,不可改變,但是*p的值可以改變

#include<iostream>
using namespace std;
int main()
{
    int a=100,b=200;
    int
*const c=&a; cout<<*c<<endl; //c=&b; //cout<<*c<<endl; //去掉//後不能執行,因為修改了c(地址)的值 *c=b; cout<<*c<<endl; //但是,這是可以執行的,因為我修改的是*c的值,不是修改的地址 }