const/static关键字是否在变量声明中传播 我想知道const/static关键字是否适用于在单个C++语句中声明的所有变量。
例如,使用此代码const/static关键字是否在变量声明中传播 我想知道const/static关键字是否适用于在单个C++语句中声明的所有变量。,c++,C++,例如,使用此代码 static const int a, b, c; 它们都声明为静态常量吗?或者只是将“a”声明为静态常量int,而将其余部分声明为int或其变体?static和const应用于所有变量 *,[],&仅应用于单个变量 例如: static int *a, &b=*a, c[10]={}; 所有变量都是静态的,但是 只有a是指针 只有b是参考 只有c是数组 有关变量声明语法的详细信息,请参阅: 如果您感兴趣,还可以查看语法为何如此 你试过测试它吗?我没有试
static const int a, b, c;
它们都声明为静态常量吗?或者只是将“a”声明为静态常量int,而将其余部分声明为int或其变体?
static
和const
应用于所有变量
*
,[]
,&
仅应用于单个变量
例如:
static int *a, &b=*a, c[10]={};
- 所有变量都是静态的,但是
- 只有
是指针a
- 只有
是参考b
- 只有
是数组c
如果您感兴趣,还可以查看语法为何如此 你试过测试它吗?我没有试过,因为我在一台公共计算机上,无法编写代码。@NateRubin,google
Ideone
:)这是一个在线编译器,如果你为你的语句提供了源代码,我会投票支持它。@JoshuaD.Boyd:我提供的语句在语法上是正确的(它可以编译),但它不会运行,因为我用指向随机内存位置的指针初始化了一个引用。它会产生分割冲突等。我只是想提供一个简单的例子,这就是为什么…对于一个源代码,我指的是引用意义上的(源代码排序的权威文档之外),而不是提供源代码意义上的。经验法则:所有可以编写的内容都离开了实际的数据类型(int
等)修改该数据类型,并因此应用于声明的所有内容。其他一切都会修改变量,因此只适用于一个变量。但是我同意C语言的声明会在你的大脑中产生一个结。…@JoshuaD.Boyd:哦,这是一个很好的观点;我添加了一些链接——虽然这可能不是您所期望的,但这正是我发现的与该问题相关的有趣之处。