c - 用于从函数返回字符串文字的程序的输出

标签 c string pointers literals

char* fun()
{
  return("samsung india");
}
main()
{
  printf("%s",printf("electronics")+fun());
}

输出:“Electronicsia”

有人可以解释一下这个输出吗?

最佳答案

printf("Electronics") 将输出发送到 stdout 并返回打印的字符数,即 11,并且由于 fun() 返回一个字符指针,在外部 printf 将指针发送到 stdout 之前,您将向该指针添加 11。

因此内部 printf 输出“电子”,之后外部 printf 输出“ia”。

关于c - 用于从函数返回字符串文字的程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511572/

相关文章:

c++ - 二叉搜索树插入如何使用递归工作?

c - 在 C 语言中,当 for 循环的条件一开始不满足时会发生什么?

perl - 在 Perl 中如何组合重叠路径段以获得完整路径?

javascript - 以字符串形式返回 React 的方法 'return'

c - 我需要释放局部变量吗?

c - 如何在节点中插入字符串(由用户输入)? (二叉搜索树)

谁能告诉我为什么c语言会出现这种情况

c++ - 将 std::string 分配给未终止的 char 数组时的预期行为?

pointers - 我们应该在 "fundamentals of programming"类(class)中教授指针吗?

c - strtok() 覆盖它的源字符串