H5W3
当前位置:H5W3 > 其他技术问题 > 正文

求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]);

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

回答:

同上,你的问题是什么?

回答:

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

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

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

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

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

本文地址:H5W3 » 求c++老哥讲解一下。。。

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址