c++ - 为什么下面的代码中a和b共享相同的地址?

标签 c++ c char

为什么在这种情况下静态断言会触发?由于 64 位地址线和 char 是单个字节,这些是否位于同一地址?

  #include <type_traits>

    int main()
    {
      char a='a';
      char b='b';

      static_assert ( &a == &b, " ERROR: Same addr"  ) ;
    }
    main.cpp: In function ‘int main()’:
    main.cpp:9:3: error: static assertion failed:  ERROR: Same addr

最佳答案

你把逻辑搞反了。 static_assert 当条件为false时触发,即两个对象没有相同的地址。

关于c++ - 为什么下面的代码中a和b共享相同的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726761/

相关文章:

c++ - std::string(char* char_array) 是如何实现的?

c# - 如何从 C# 应用程序调用带有指向 void 的指针的 C++ 函数?

c++ - make_shared如何为manager object和managed object分配单个动态内存

c++ - 程序中 main() 之前#ifdef 的用途

c++ - 带变量的宏字符串

c - C头文件中的"private"变量

c - 在 C 中替换特定模式后的文本

c++ - 计算哈希表中字符串出现的次数

C++ 模板元编程 : Different Behavior using Types Aliases vs Inheritance

c - 如何malloc、calloc、realloc一个二维指针结构?