【发布时间】:2026-01-29 06:05:01
【问题描述】:
为什么这段代码会输出C++Sucks?其背后的概念是什么?
#include <stdio.h>
double m[] = {7709179928849219.0, 771};
int main() {
m[1]--?m[0]*=2,main():printf((char*)m);
}
测试它here。
【问题讨论】:
-
@BoBTFish 从技术上讲,是的,但它在 C99 中的运行方式完全相同:ideone.com/IZOkql
-
@nurettin 我也有类似的想法。但这不是 OP 的错,而是人们投票支持这种无用的知识。承认,这个代码混淆的东西可能很有趣,但是在谷歌中输入“混淆”,你会得到大量你能想到的正式语言的结果。不要误会我的意思,我觉得在这里问这样的问题是可以的。这只是一个被高估的问题,因为它不是很有用。
-
@detonator123 “你一定是新来的”——如果你看一下关闭的原因,你会发现事实并非如此。您的问题显然缺少所需的最低限度的理解 - “我不明白,解释一下”在 Stack Overflow 上不受欢迎。如果您首先尝试自己,问题是否还没有结束。谷歌“双重表示C”或类似的东西是微不足道的。
-
我的大端 PowerPC 机器打印出
skcuS++C。 -
我的话,我讨厌这样人为的问题。这是内存中的一个位模式,恰好与一些愚蠢的字符串相同。它对任何人都没有任何用处,但它为提问者和回答者都赢得了数百个代表点。同时,可能对人们有用的难题可能会获得一些分数,如果有的话。这是 SO 问题的典型代表。
标签: c deobfuscation