这是我的 C 代码,用 gcc 编译。
#include<stdio.h>
int main()
{
int a=1;
switch(a)
{
int x=10;
case 1:
printf("%d\n",printf("%d\b",x));
break;
default:
printf("%d\n",printf("%d\b",x));
}
return 0;
}
printf() 应该返回它成功打印的元素数。
printf("%d\b", x)
应该自己打印 10(因为 \b 将打印指针落后一步(到 10 中的数字 0)并且之后没有任何内容可打印。所以它应该只打印 10。那是 2 个字符。现在外部 printf 将显示 2。输出应该是 102。我实际看到的输出是 2。
在嵌套printf
s 的情况下,是否记住了打印指针的位置?我的意思是,如果\b
内部有 a printf
,它将使打印指针落后一步。当控件现在转到外部printf
时,是否记住了更改的位置?它会覆盖最后一个字符吗?