int *const p,const int *p和int const *p的区别

深藏阁楼爱情的钟 2022-04-03 13:40 437阅读 0赞

在学习c语言的过程中,可能我们很少见到int int *const p,const int *p和int const *p,但当我们在学习c++的过程中,就会遇到这些模糊不清的概概念,如果没搞清楚它们的区别,我们在使用过重中会很痛苦,但如果我们搞懂了它们之间的区别之后,用起来非常方便。

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

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a=100;
  6. int* const c=&a;
  7. cout<<*c<<endl;
  8. const int *d=&a;
  9. cout<<*d<<endl;
  10. }
  11. //输出的值都是100

至于int *const p;

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

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a=100,b=200;
  6. int *const c=&a;
  7. cout<<*c<<endl;
  8. //c=&b;
  9. //cout<<*c<<endl; //去掉//后不能运行,因为修改了c(地址)的值
  10. *c=b;
  11. cout<<*c<<endl; //但是,这是可以运行的,因为我修改的是*c的值,不是修改的地址
  12. }

发表评论

表情:
评论列表 (有 0 条评论,437人围观)

还没有评论,来说两句吧...

相关阅读

    相关 int *p=aint *p=&a区别

      指针变量用来存放指针(或者可以理解成地址)。而 & 则是取地址运算符,因此给指针变量赋值的方式一般是把变量的地址取出来,然后付给对应类型的指针变量: int a;

    相关 int p int p

    1. int(\p)\[10\]: 根据运算符的结合律,()的优先级最高,所以p是一个指针,指向的一个维度为10的一维数组。 p一个指向数组的某一行 int a[