const int p 和 int const p


主要讲下这两者的区别及用法!

高能区

const int* p 和 int const* p是完全等价的!
const int* const p 和 int const const* p 是完全等价的!

下面举几个例子来分析:

int x = 100, y = 100;
const int* p = &x;
int* const m = &y;
p = &y;                //正确的,但是不要忘记&符号,因为此时的p代表的是地址!
*p = 10;            //错误!*p是常量!
*m = 100;            //正确,此时不要加&,因为此时的*x指的是x这个地址存放的变量!
m = &y;                //错误!x是常量
//如果是const int* const p;那么既不能修改*p也不能修改p

看看这些变量的关系!
| 变量名 | 存储地址 | 存储内容 |
| —— | ——– | ——– |
| x | &x | 100 |
| p | &p | &x |
| m | &p | &x |

从本质了解指针,可以学下汇编,或者读读《C和指针》这本书!

才疏学浅,望雅正!


文章作者: incipe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 incipe !
评论
 上一篇
万能头包含的头文件 万能头包含的头文件
// C++ includes used for precompiling -*- C++ -*- // Copyright (C) 2003-2018 Free Software Foundation, Inc. // // This
2020-05-11
下一篇 
关于memset 关于memset
被不了解memset狠狠的坑了一把,难受。 对于整型数组,若要是初始化为非0的值时应该使用for循环,字符型或0,用memset即可。 例如: #include<bits/stdc++.h> int main() { int
2020-05-11
  目录