猫史档案馆


你们能看懂这段C代码吗

用户:蒟蒻OIer1048576蒟蒻OIer1048576查看:7 回复:15 评论:7 创建时间:2021-02-12T12:47:26


#define c "%c"
#define g getchar()
#include<stdio.h>
main() {printf(c
		c
		c
		c
		c,g,g,g,g,g);}

看懂了告诉我怎么回事


回复

上一页1 页 / 共 1下一页
****************

c喵

点赞0


评论


蒟蒻OIer1048576蒟蒻OIer1048576

#define c "%c"
#define g ,getchar()
#include<stdio.h>
main(){printf(c c c c c g g g g g);}

点赞0


评论


蒟蒻OIer1048576蒟蒻OIer1048576

 

点赞0


评论


蒟蒻OIer1048576蒟蒻OIer1048576

dd

点赞0


评论


蒟蒻OIer1048576蒟蒻OIer1048576

点赞0


评论


InkyRainInkyRain

看得懂

点赞0


评论


InkyRainInkyRain

大概知道什么意思

点赞0


评论


InkyRainInkyRain

但是自己绝对不会这么写

点赞0


评论


InkyRainInkyRain

{getchar()并输出输入值}

重复执行大括号中的内容5次

应该是这样的吧

但是具体的printf怎么搞的不清楚

点赞0


评论


蒟蒻OIer1048576蒟蒻OIer1048576

dd

点赞0


评论


阔耐之狐阔耐之狐

错了吧,应该是viodmian()吧?

点赞0


评论


阔耐之狐阔耐之狐

获取前三个字符串吗?

点赞0


评论


Kinsope_WedoaKinsope_Wedoa

能。

点赞0


评论


Kinsope_WedoaKinsope_Wedoa

printf是从右向左计算的,输出是从左向右(丹尼斯这个老滑头设计的)

点赞0


评论


沐夏_IMuXia沐夏_IMuXia

这是缓冲区的问题,你提前输入了w,它就存在了缓冲区了,然后你没有输入,但是缓冲区里有字符w,所以getchar就获取到了w,就像:
#include<stdio.h>
int main()
{
char a,b;
a=getchar();
b=getchar();
putchar(a);
putchar(b);
}
运行的话,假设你想输入:
a(回车)
b(回车)
但实际你输入完第一行就直接输出了:
a(回车)
因为回车实际也在缓冲区里

点赞0


评论