面试—每日一题(3)

嘿,伙计,你在读我的博文吗?如果在,那就提点意见吧!

         好了,今天的题目,是我最讨厌的,也是让我最头疼得,但是,这个问题确实很重要的,不会它不行的,是的,考官是很喜欢这个题的,考它,那是经常的。来吧,伙计,再难也要去面对吧,是吧,为什么?因为我们是程序员,如果你说,你不想当程序员,或者你说你不想写程序,那好吧,那你可以不看的!

         好吧,废话少说,开是吧!

题目:

const 符号常量;

(1)const char *p

(2)char const *p

(3)char * const p

说明上面三种描述的区别;

 

看到了吗?伙计,我说的没有错吧,确实是很麻烦的问题,是吧!你现在可以自己在心里分析一下,看看自己掌握了吗?如果没有,那你该去翻翻你的那本新新的C++课本了,不要告诉我,你的课本已经找不到了,那我该说了,你是一个坏家伙!

 

(1)       const char *p;

这是什么?加了一个const,是的,入股只是有char *p,那是很简单的,就是声明了一个char类型的指针p了,现在情况不一样了,不一样了。有了const,哦,闹的我有点头晕。我该怎么说呢?如果在面试中,你肯定不能这样的,嘿,考官,能不能给我台机子,这个题,我不是很懂,我想写个程序运行一下,证实一下我的想法,考官会说,伙计,你out了!呵呵!

那现在可就只能开始想象程序了。

const char *p是指这个p指针是指向常量的指针,什么叫常量指针?哦,God,我讨厌这些概念。饶了我吧,如果不是为了这份工作,我想我权利拒绝回答这个问题!是的,我有权利!为了更好的解释,我决定写一个段代码!

 

   int var = 35;

   const int max = 100;

   const int *p1;

   const int *p2;

  

   p1 = &var;

   p2 = &max;

 

   p1 = &max;

 

看看这段代码!首先,我告诉你,你不用怀疑他的正确性,是的,它完全是对的,现在该说了,指向常量,就是说指针指向一个地址,而这个地址中的值是常量的,完成之后,你不能再修改指针的指向的常量值,所以下面的代码就是错的:

*p1 = 100;

   *p2 = 35;

为什么?本来p1是指向的值是35,而现在改变了值,那就是不对的,但是你可以改变p1指向的地址,但是你不可以改变*p1的值。懂了吗?我想你懂得!好了

下一个!

(2)char const *p

我想说的是,这个和上面一个的意思是一样的。哈哈哈!是的,是一样的。来,下一个。

(3)char * const p

                   这个和上面的相反的,就是说不能修改指针指向的地址,而可以修改指针指向的值,是的,和上面的正好相反!

 

好了,累了,该去吃饭了,不说了,现在,你要是不懂!请贴出你的问题,我一定解决!

posted @ 2011-02-28 14:33  Java EE  阅读(121)  评论(0编辑  收藏  举报