面试—每日一题(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了!呵呵!
那现在可就只能开始想象程序了。
【面试—每日一题(3)】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
这个和上面的相反的,就是说不能修改指针指向的地址,而可以修改指针指向的值,是的,和上面的正好相反!

好了,累了,该去吃饭了,不说了,现在,你要是不懂!请贴出你的问题,我一定解决!
转载于:https://www.cnblogs.com/JPAORM/archive/2011/02/28/2509908.html

    推荐阅读