首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一路例题,为什么运行结果不对

2013-10-04 
一道例题,为什么运行结果不对?#includeiostreamusing namespace stdtemplateclass TT max(T m1,T m2)

一道例题,为什么运行结果不对?

#include<iostream>
  using namespace std;
  template<class T>
  T max(T m1,T m2)
  {return (m1>m2)?m1:m2;}
  void main( )  {
  cout<<max(2,5)<< "\t"<<max(2.0,5.0)<<endl;
  cout<<max("y","b")<<"\t"<<max("c","d")<<endl;
  } 

运行结果是:
5 5
b d
y比d大,为什么不是这个结果:
5 5
y d
刚问过这倒例题,因为m1和ml写混了,所以没通过编译。但是现在为什么运行结果又不对了?请高手运行一下帮助找错。谢谢了!
[解决办法]
'y' 不是“y" 
[解决办法]
引用:
Quote: 引用:

"Y“是字符串,‘y'是字符
字符串不能比较大小的

可是例题里max("ABC","ABD")比较的结果是ABD!可以比较啊?!
max("y","b")是比较字符串,实际应该是两个字节:max("y\0","b\0"),比较字符串的结果也应该是y("y\0")啊?

你去把"ABC"和"ABD"换一下位置,结果是"ABC",它比较的是字符串,是地址,不是内容

热点排行