gpt4 book ai didi

无法理解 &(sizeof 2[a])[a]

转载 作者:行者123 更新时间:2023-11-30 18:16:24 24 4
gpt4 key购买 nike

我有一些输出 bcdefg 的代码,但我不明白为什么。

我用谷歌搜索,但找不到任何东西。

const char a[]="Abcdefg";
printf("%s",&(sizeof 2[a])[a]);

为什么输出是 bcdefg,而不是 Abcdefg

最佳答案

这段代码的目的是让你感到困惑,而不是做任何有用的事情。不要写这样的代码。以下是编译器如何解释它:

  • 2[a]a[2] 相同,都是 char 类型的值(该值完全不没关系;编译器甚至不会尝试评估它)
  • sizeof 2[a]sizeof(char) 相同,等于 1
  • &(sizeof 2[a])[a] 是指向字符串 Abcdef 中的字符 b 的指针 - 该字符索引为 1
  • printf("%s",&(sizeof 2[a])[a]) 从该指针开始打印字符串

关于无法理解 &(sizeof 2[a])[a],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56350998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com