在C++中使用逗号声明[重复]

pqwbnv8z  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(84)
    • 此问题在此处已有答案**:

Type qualifier appear in multiple item declaration (exhibiting strange behavior with pointer)(2个答案)
3天前关闭。
我知道

int* p, k;

k声明为int,将p声明为int*,但以下情况如何:

static int a, b;
const int c, d;

和其他声明符。它们都是一样的吗?显然指针,数组和间接寻址都是一样的。
我不是问它是否编译;我要求关于这些声明的规则,最好是从标准中引用。

oalqel3c

oalqel3c1#

下面的代码没有编译,因为p已经声明为consthttps://godbolt.org/z/P7bj85aWx

int main() {
    const int k = 1, p = 5;

    p++;
   
    return 0; 
}

对于static,考虑以下输出67而不是66的情况。如果b * 不是 * static,则后者将是预期的。
https://godbolt.org/z/E58azYdfe .

#include <iostream>

int foo() {
    static int a, b = 5;

    b++;

    return b;
}

int main() {
    std::cout << foo() << foo() << std::endl;
    
    return 0;
}

相关问题