cout < <true?1:"1" < <endl;
2014-07-04 17:59
337 查看
http://blog.sina.com.cn/s/blog_6a4b57e30100m5n2.html
为什么报错呢
cout < <true?1:"1" < <endl;
解释:
cout<<后面的类型要在编译时可以决定。而(true?1:"1")的类型有可能是int也有可能是const char*。所以编译不会通过。
: 前后必须是同一类型or能隐式转换的类型
//比如:
#include <iostream>
using namespace std;
void main()
{
cout <<(true?1:2)<<endl;//同一类型
cout <<(true?"1":"2")<<endl;//同一类型
cout <<(true?'2':1)<<endl;//char,int能相互隐式转换
cout <<(true?"2":1)<<endl;//因为"2":1不是同一类型 ,不能隐式转换
}
为什么报错呢
cout < <true?1:"1" < <endl;
解释:
cout<<后面的类型要在编译时可以决定。而(true?1:"1")的类型有可能是int也有可能是const char*。所以编译不会通过。
: 前后必须是同一类型or能隐式转换的类型
//比如:
#include <iostream>
using namespace std;
void main()
{
cout <<(true?1:2)<<endl;//同一类型
cout <<(true?"1":"2")<<endl;//同一类型
cout <<(true?'2':1)<<endl;//char,int能相互隐式转换
cout <<(true?"2":1)<<endl;//因为"2":1不是同一类型 ,不能隐式转换
}
相关文章推荐
- C++初始化,之不明白篇 cout<<x<<endl 与 cout<<"x = "<<cout<<x<<endl的输出的值会不一样
- cout<<endl;与cout<<"/n";的区别
- copy(dist.begin(), dist.end(), ostream_iterator<int>(cout, " ")); cout << endl; 这句话是什么意思
- C语言-cout<<"123"<<"45"<<endl;
- [细节决定B度]之回首一瞥cout<<"Hello,world"<<endl;
- 详解让C++新手闹心的语句“cout<<"Hello!"<<endl;”
- 小议 cout << i << " " << i++ << endl
- 关于cout<<1; cout<<endl;和cout<<1<<endl;的解析
- cout<<"Press any key to exit!\n"<<endl;
- [细节决定B度]之回首一瞥cout<<"Hello,world"<<endl;
- cout<<"a1="<<a<<endl; cout<<"a2="<<-0x80000000<<endl;
- 【引用】回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/>
- 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/>
- 有一个n*n的矩阵,矩阵由 "0"和"1"组成,检测矩阵中的由"1"组成的图形是一个实心的正方形,结果为true或者false
- struts2配置常量<constant name="struts.devMode">,将值修改为true(开发模式有什么好处)的好处
- <constant name="struts.devMode" value="true" />
- 合并注解配置 <context:component-scan base-package="com.**.controller" annotation-config="true"/>
- <%@ page include=""%> 和<jsp:include flush="true" page=""></jsp:include>两者的区别
- cout<<endl 本质解析
- ostream_iterator<int> output(cout ,"*"); 的理解