:: before array 在下面的代码中显式地在 C++ 中意味着啥? [复制]

Posted

技术标签:

【中文标题】:: before array 在下面的代码中显式地在 C++ 中意味着啥? [复制]【英文标题】:What does :: before array means in C++ explicitly in below code? [duplicate]:: before array 在下面的代码中显式地在 C++ 中意味着什么? [复制] 【发布时间】:2021-12-16 02:16:54 【问题描述】:

在下面的代码中,我无法理解数组 add[i] 之前的 :: 是什么意思。谁能给我一个大致的概念,如果在数组数据结构之前添加,这在 c++ 中意味着什么?(这是通用的仅供参考的代码)

#define FOR(ii,aa,bb) for(int ii=aa;ii<=bb;ii++)

    FOR(i, 1, n) 
        scanf("%d %d", &x, &y);
        double add = dist(Tx, Ty, x, y);
        all += add * 2;
        suff[i] = pre[i] = dist(Cx, Cy, x, y) - add;
        ::add[i] = dist(Kx, Ky, x, y) - add;
    

【问题讨论】:

您使用的FOR 宏是什么?如果你要编写真正的、惯用的 C++(而不是基本上用 C++ 编写 C),你不应该使用这样的宏。 :: 表示::add 驻留在全局范围内。 :: 在符号前表示全局命名空间,因此它指的是与上面声明的不同的add 伙计们,FOR 仅供参考,现在只添加了定义语句,我认为在这个问题的参考中甚至不重要.....因为我想要一般的和不想要的发布整个代码 【参考方案1】:

这意味着它引用了在全局命名空间中定义的数组add,而不是在FOR宏后面的代码块中定义的局部变量add

通常你只需给局部变量一个不同的名字。而且大多数时候你也不会有一个全局可变变量。

【讨论】:

明白,谢谢

以上是关于:: before array 在下面的代码中显式地在 C++ 中意味着啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要在 .NET 中显式确定堆栈的大小?

是否需要在C ++析构函数中显式销毁结构中固定大小的数组?

为啥你需要在下面的引导手风琴代码中显示 fontawesome chevron 的 "::before" css 修饰符

在 Ruby 中显式返回是一种好的风格吗?

在信号处理程序中显式调用析构函数

在 JSF 2 的 requestScoped bean 中显式创建会话