求c++老哥讲解一下。。。

新手上路,请多包涵

char x2={"Jason ","at your service\n"};
char *y="Quillstone ";

for(int i=0;i<3;i++){

 cout<<((i<2)? !i ? x[i] : y : x[1]);

题目描述

c primer plus

题目来源及自己的思路

c primer plus

相关代码

粘贴代码文本(请勿用截图)
char x2={"Jason ","at your service\n"};
char *y="Quillstone ";

for(int i=0;i<3;i++){

 cout<<((i<2)? !i ? x[i] : y : x[1]);

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 1.2k
2 个回答
新手上路,请多包涵

同上,你的问题是什么?

一开始还想帮你排个版,结果一看实质性内容就只有一段代码,连问题是什么都不清楚,排版把多余的信息删完就只剩代码了,而且还是一段缺少一个反大括号的代码,而且这个代码编译的时候还会有警告……

其实我大概猜到你想问什么,反过来我问你 3 个问题

  • i == 0 的时候会发生什么
  • i == 1 的时候会发生什么
  • i == 2 的时候会发生什么

你把这三个问题想明白就回答了你的问题。到于三目运算符的优先级……貌似不太可能出现有歧义的解释。

对了,补充一下,C/C++ 中可以用 0 表示假,非 0 表示真。而 ! 运算符计算 0 值的结果是 1,计算非 0 值的结果是 0。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏