来源:牛客网 下列哪两个是等同的 int b; 1.const int *a = &b; 2.const * int a = &b; 3.const int* const a = &b; 4.int const* const a = &b; 3,4是相同的. int const *a 和 const int *a 意义相同,作用等价 同理,本题3.4意义相同 第2个语法错误,没有这种写法.
首先注意,const int * p 和int const *p 是一样的,并且不管是不是*p,即使const int i和int const i也是一样的,所以我们接下来只讨论int const * p和int * const p的不同 对于这种问题,我们只用将const 的位置固定,然后再看后面的东西,一般规则是后面的东西不能在进行赋值或者修改.例如下面: #include<stdio.h> int main(int argc,char *argv[]) { int i = 10; int
前面有一篇文章:数组名就是常量指针 参考文章:http://blog.pfan.cn/whyhappy/5164.html const int * pi .int const * pi与int * const pi及其操作 1 从const int i 说起 你知道我们申明一个变量时像这样int i :这个i是可能在它处重新变赋值的.如下:int i=0;//…i=20;//这里重新赋值了 不过有一天我的程序可能需要这样一个变量(暂且称它变量),在申明时就赋一个初始值.之后我的程
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. 事实上这个概念谁都有只是三种声明方式非常相似很容易记混. Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读. char * const cp; ( * 读成 pointer to ) cp is a const pointer to char const char * p; p is a
学习了下c++中的const关键字,总结如下. 1.const限制一个变量不能修改其内容,如果强行修改的话,如下面代码这样子,编译就会报错,“表达式必须是可修改的左值”. int main() { const int a = 6; cout << a << endl; a = 10; cout << a << endl; return 0; } 2.如果通过指针强行修改呢,如下面代码这样子. int main() { const int a = 6; cou