int *const p,const int *p和int const *p的區別
阿新 • • 發佈:2021-08-08
原文地址: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的值,不是修改的地址 }