黑马程序员技术交流社区

标题: 关于const的使用 [打印本页]

作者: 小明的爸爸    时间: 2015-11-23 11:09
标题: 关于const的使用
在其他论坛看到一道有意思的关于const题目,觉得很有趣和大家分享一下啊

以下选项错误的是:  

A )       int =5;int =6;
           const int *p = &a;
           p=&b;
B )       int =5;int =6;
           const int *p = &a;
         *p=5;
C)       int =5;int =6;
            int *  const p = &a;
           *p=5;
D )       int =5;int =6;
            int *  const p = &a;
           p=&b;

欢迎大家讨论,看看大家的答案和我是不是一样



作者: cube川    时间: 2015-11-23 20:49
第四个错了吧
作者: toveyloves    时间: 2015-11-23 21:25
int =5; 是什么啊?怎么直接赋值给整型类型呢?
作者: 小明的爸爸    时间: 2015-11-23 21:36
toveyloves 发表于 2015-11-23 21:25
int =5; 是什么啊?怎么直接赋值给整型类型呢?

不好意思,是int  a= 5, int b =5,写露了
作者: 小明的爸爸    时间: 2015-11-23 21:37
toveyloves 发表于 2015-11-23 21:25
int =5; 是什么啊?怎么直接赋值给整型类型呢?

不好意思,是int  a= 5, int b =5,写错了
作者: 小明的爸爸    时间: 2015-11-23 21:43
没注意,定义变量时写错了应该是 int a =5;int b =6  正确答案是B,其实大家只要记住两句话就行了
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。
作者: Tmac90301    时间: 2015-11-23 23:17
D没有错?const在*后,指针的指向不可改。既然赋值a,还能又指向b?
作者: 小明的爸爸    时间: 2015-11-24 20:02
Tmac90301 发表于 2015-11-23 23:17
D没有错?const在*后,指针的指向不可改。既然赋值a,还能又指向b?

我没想到它是多选,就没看细看后面两个,你说对了 D 也是错的,赞一个
作者: 小明的爸爸    时间: 2015-11-24 20:05
cube川 发表于 2015-11-23 20:49
第四个错了吧

正确答案是B,D

作者: chenxinju    时间: 2015-11-24 21:39
选A吗   const 在前面 值不能改变  
作者: wwpower    时间: 2015-11-24 22:06
感觉 B和D错了,const在*前,指向的变量内容只读。const在*后,指针不能改变指向。
作者: fenghun1991    时间: 2015-11-24 22:40

D没有错?const在*后,指针的指向不可改。既然赋值a,还能又指向b?
作者: cube川    时间: 2015-11-25 15:08
小明的爸爸 发表于 2015-11-24 20:05
正确答案是B,D

你试试B能不能编译成功,B应该是强制转换




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2