char* fun()
{
return("samsung india");
}
main()
{
printf("%s",printf("electronics")+fun());
}
输出:“电子学”
有人可以解释一下这个输出吗?
printf("electronics")
将输出发送到 stdout 并返回打印的字符数,即 11,并且由于fun()
返回一个字符指针,因此在外部 printf 将其发送到 stdout 之前,您将向该指针添加 11。
所以内部 printf 输出“电子”,然后外部 printf 输出“ia”。
我会说每个运行时的输出可能不同..因为那里发生了什么:
printf("%s",printf("electronics")+fun());
假设: printf("%s", arg); 你的 arg = printf("electronics")+fun()
arg 是 char* 所以指针......实际上当你的 arg 被评估时, printf("electronics") 提供输出电子和返回值 11(成功打印的字符数),你的 fun() 返回 char * - 指向 samsung india 的内存指针,但您添加到该指针 11,因此您的指针将指向“ia”,这将添加到输出...