C++两道面试题,有兴趣的来看看,看你能不能做对

howardneil2007 2007-09-17 12:49:19
威盛软件面试题目
1. char * str1="hello";
char * str2="hello";
*str1='p';
cout<<str2<<str1<<endl;
问执行结果
2. char * str="hello, world!"
strcpy(str,"hi");
大概是这样,问执行结果
...全文
4717 112 打赏 收藏 转发到动态 举报
写回复
用AI写文章
112 条回复
切换为时间正序
请发表友善的回复…
发表回复
logqq 2008-03-02
  • 打赏
  • 举报
回复
进来小学一下。。。
flyingwow99 2007-12-17
  • 打赏
  • 举报
回复
发表于:2007-09-17 13:22:453楼 得分:0
VC编写的程序Debug版本会对内存访问检查,写入字符串常量的内存为报错,Release不会的

因此,以下答案才是正确的:

第一题 pellopello
因为编译器优化,两个指针指向同一字符串常量

第二题 hi
strcpy覆盖了,常量字符串
--------------------------- 请注意没有指明是VC编译器
zfzyh 2007-10-13
  • 打赏
  • 举报
回复
cout < <str2 < <str1 < <endl;
这句话是什么意思啊?我忘记了
yebigroc 2007-09-27
  • 打赏
  • 举报
回复
学习了
idancing 2007-09-26
  • 打赏
  • 举报
回复
值得学习,确实是很容易忽视但是很关键的问题
反复看了几遍,对于初学者来说受益匪浅
howardneil2007 2007-09-26
  • 打赏
  • 举报
回复
谢谢大家
没多少分
就当学习吧
ig_scl 2007-09-25
  • 打赏
  • 举报
回复
学习了!
zhuhuaitao226 2007-09-25
  • 打赏
  • 举报
回复
这样做好想很BT
我在.net下面试就debug release都会报错
这样是为了考什么?
zhangmeiling520 2007-09-25
  • 打赏
  • 举报
回复
高手啊!
学到了好几个知识点:
vc的代码优化方面
release和debuge的区别
编译方面
CSDN 是个学习的好地方!!!!!!!!!!!!
weiqurang 2007-09-25
  • 打赏
  • 举报
回复
学习了!
red_hope 2007-09-25
  • 打赏
  • 举报
回复
测试了,结果是:pellopello,he
确实是编译器优化的结果。
但这种优化确实很危险,个人感觉。
看看这个,如果这样改,就很好理解了:
char * str1="hello";
char * str2="hello2";
str1[2]='p';
cout<<str2<<str1<<endl;
执行结果就是heplo2hello
这个就是各自管自己的。
leavesxy 2007-09-25
  • 打赏
  • 举报
回复
在UNIX上
第一结果是:hellopello;
第二结果是:hi;

在VC下,会报错。因为这种申明方式是按常量来处理的。
哼哼哼画代码 2007-09-25
  • 打赏
  • 举报
回复
mark
lanchunyuan 2007-09-25
  • 打赏
  • 举报
回复
受教了,学习下
syhan 2007-09-24
  • 打赏
  • 举报
回复
编译器优化是有道理的
wnb0405404 2007-09-24
  • 打赏
  • 举报
回复
高人!!
受教了.多谢啊
caosm 2007-09-24
  • 打赏
  • 举报
回复
学习了!
StarsunYzL 2007-09-24
  • 打赏
  • 举报
回复
惭愧……什么时候才能细心到这地步
LC282444871 2007-09-24
  • 打赏
  • 举报
回复
学习了
RichardWangfei 2007-09-24
  • 打赏
  • 举报
回复
在C++ builder 6.0下可没出现上述的情况!str1和str2分配的内存是独立的,互不影响!也没有出现调试时出错,除非显示声明:const char * str1="hello"。
我想bcb做的非常好,这才是正常的。vc编译器的这种误导性优化没意义,且危险!
-----个人观点,有点冒失!
加载更多回复(92)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧