int main() { int x = 10; { int x = 20; cout << ::x; // 输出 10 } return 0;}">

c语言中两个冒号是什么意思

来源:这里教程网 时间:2026-02-21 16:47:24 作者:

C 语言中两个冒号的含义

C 语言中,双冒号 (::) 具有以下两种含义:

1. 作用域解析运算符

双冒号用于解析作用域中的名称。它允许访问当前作用域之外的名称。例如:

立即学习“C语言免费学习笔记(深入)”;

<code class="c">int main() {
  int x = 10;
  {
    int x = 20;
    cout << ::x; // 输出 10
  }
  return 0;
}</code>

在内部作用域中,通过 ::x 访问了外部作用域中声明的 x 变量。

2. 嵌套类型名

双冒号用于指定嵌套类型的名称。例如:

<code class="c">namespace myNamespace {
  class MyClass {
    struct InnerClass {
      // ...
    };
  };
}</code>

要引用嵌套类型,可以使用双冒号:

<code class="c">myNamespace::MyClass::InnerClass innerObject;</code>

相关推荐