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