C++语言问题

[复制链接]
查看11 | 回复4 | 2010-7-23 22:22:11 | 显示全部楼层 |阅读模式
char word[5] = "?ate";
for (char ch = 'a'; word != "mate"; ch ++ )
{
cout 或<比较,但定义为字符数组型只能用库函数来进行比较,因此在该循环第二个表达式没一点作用,当然无法跳出循环了!
回复

使用道具 举报

千问 | 2010-7-23 22:22:11 | 显示全部楼层
字符串比较不能直接这么做,word和"mate"比较,只是两个地址进行比较,一个是局部变量,一个是常量,地址自然是不会相等用strcmp(word,"mate")!=0来判断
回复

使用道具 举报

千问 | 2010-7-23 22:22:11 | 显示全部楼层
因为word是一个数组的名称,代表的是数组首元素的地址,他是一个地址,地址不可能会和字符串"mate相等,所以是死循环。应使用strcmp方法来比较,char word[5] = "?ate";char *p="mate";strcmp(word,p);注意,不能这样使用strcmp(word,"mate");这是错误的。
回复

使用道具 举报

千问 | 2010-7-23 22:22:11 | 显示全部楼层
你觉得他会跳出来吗?你自己代码就写的死循环啊
回复

使用道具 举报

千问 | 2010-7-23 22:22:11 | 显示全部楼层
因为你的word永远都不等于mate,所以无法跳出循环。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行