【找错】测试一下自己

pc20age 2008-12-23 10:45:20
今天看书发现一些诡异的拼写错误,拿到编译器上试了试,果然是这样。
拿出来晒晒,我想可能很多人跟我一样,以前都不知道这些吧。
把这个当作找错题,测试一下自己?
#include <iostream>
#include <iomanip>

bool fun(char* c)
{

return c&&0[c] and not c[0:>>c[1];
}

int main()
{
int x=1;
char p[]="abcd";
for(int i=0;i<100;++i);
// 这里有什么错??????????????????/
++x;
std::cout<<x<<std::endl;
if (fun(p))
std::cout<<"True"<<std::endl;
else
std::cout<<"False"<<std::endl;
return 0;
}
...全文
143 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
shyli 2008-12-24
  • 打赏
  • 举报
回复
g++中默认是忽略三字符组的,编译是一个warning,加-trigraphs才可以enable三字符组。
jieao111 2008-12-24
  • 打赏
  • 举报
回复
for多个分号ms编译不算错,实际会执行一次循环
ooily 2008-12-24
  • 打赏
  • 举报
回复
帮顶
jl443960770 2008-12-24
  • 打赏
  • 举报
回复
牛人[Quote=引用 3 楼 lann64 的回复:]
// 这里有什么错??????????????????/
--------------
这个东西有问题,最后的??/会被解释成\,把换行符吃了,后面一句++x成了注释了。
[/Quote]
smilecnf 2008-12-24
  • 打赏
  • 举报
回复
for(int i=0;i<100;++i);
rabbii 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lann64 的回复:]
我觉得这个程序是“造”出来的,故意的。为了演示一些拼写错误和特殊两字符组、三字符组,而特意“造”的一个程序。
程序的语言可以不用管了。几个特殊的地方需要关注:
1、0[c]这种用法,等价于c[0]
2、and not 保留字
3、:>和??/ 等价于 ] 和\
4、for后面的;
就看出这些了。还有别的地方吗?
[/Quote]牛~~~
sincor 2008-12-24
  • 打赏
  • 举报
回复
我看出来一个 fun(P) 这程序不是放屁吗? (*^_^*) 呵呵……
lifengjiangol 2008-12-24
  • 打赏
  • 举报
回复
多了个分号
ypb362148418 2008-12-23
  • 打赏
  • 举报
回复
fun函数看不懂,再说了,你的for循环后面有一个分号,那么你的for循环是空循环了,没什么用啊,那为什么要写呢?
xiaoyisnail 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lann64 的回复:]
我觉得这个程序是“造”出来的,故意的。为了演示一些拼写错误和特殊两字符组、三字符组,而特意“造”的一个程序。
程序的语言可以不用管了。几个特殊的地方需要关注:
1、0[c]这种用法,等价于c[0]
2、and not 保留字
3、:>和??/ 等价于 ] 和\
4、for后面的;
就看出这些了。还有别的地方吗?
[/Quote]

up

高手就是高手,3真的不知道

不过其实这种“造”出来的程序,其实没什么意义
lann64 2008-12-23
  • 打赏
  • 举报
回复
我觉得这个程序是“造”出来的,故意的。为了演示一些拼写错误和特殊两字符组、三字符组,而特意“造”的一个程序。
程序的语言可以不用管了。几个特殊的地方需要关注:
1、0[c]这种用法,等价于c[0]
2、and not 保留字
3、:>和??/ 等价于 ] 和\
4、for后面的;
就看出这些了。还有别的地方吗?
toadzw 2008-12-23
  • 打赏
  • 举报
回复
#include <iostream>
#include <iomanip>

bool fun(char* c)
{

return c&&0[c] and not c[0:>>c[1];
}

int main()
{
int x=1;
char p[]="abcd";
for(int i=0;i<100;++i);//-->多了个分号?
++x;
std::cout<<x<<std::endl;
if (fun(p))
std::cout<<"True"<<std::endl;
else
std::cout<<"False"<<std::endl;
return 0;
}
funnybunny 2008-12-23
  • 打赏
  • 举报
回复
真的长见识了...
[Quote=引用 6 楼 xiaoyisnail 的回复:]
引用 4 楼 lann64 的回复:
引用 2 楼 xiaoyisnail 的回复:
for后面多了个分号
那个fun函数里面什么东西啊。。。

是个合法的表达式,只不过好像是永“假”的。:>会被解释成]


:>会被解释成]
这个长见识了,呵呵
[/Quote]
zedzhao 2008-12-23
  • 打赏
  • 举报
回复
for后面的分号是干吗的,失误吗,
fun里面是干吗的.....没概念
funnybunny 2008-12-23
  • 打赏
  • 举报
回复
好奇怪的代码啊...上面那个函数我还真没明白...

下面要是空循环的话,好像建议用
for(;;)、
{
//empty
}
的格式~
xiaoyisnail 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lann64 的回复:]
引用 2 楼 xiaoyisnail 的回复:
for后面多了个分号
那个fun函数里面什么东西啊。。。

是个合法的表达式,只不过好像是永“假”的。:>会被解释成]
[/Quote]

:>会被解释成]
这个长见识了,呵呵
xiaoyisnail 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lann64 的回复:]
// 这里有什么错??????????????????/
--------------
这个东西有问题,最后的??/会被解释成\,把换行符吃了,后面一句++x成了注释了。
[/Quote]

牛,不用编译器还真看不出来
lann64 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaoyisnail 的回复:]
for后面多了个分号
那个fun函数里面什么东西啊。。。
[/Quote]
是个合法的表达式,只不过好像是永“假”的。:>会被解释成]
lann64 2008-12-23
  • 打赏
  • 举报
回复
// 这里有什么错??????????????????/
--------------
这个东西有问题,最后的??/会被解释成\,把换行符吃了,后面一句++x成了注释了。
xiaoyisnail 2008-12-23
  • 打赏
  • 举报
回复
for后面多了个分号
那个fun函数里面什么东西啊。。。
加载更多回复(1)

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧