Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中,`const`和例如`int`的顺序有区别吗? 我已经查看了C和C++的常见问题和教程,一直没能找到一个明确的答案。_C++_C - Fatal编程技术网

在C中,`const`和例如`int`的顺序有区别吗? 我已经查看了C和C++的常见问题和教程,一直没能找到一个明确的答案。

在C中,`const`和例如`int`的顺序有区别吗? 我已经查看了C和C++的常见问题和教程,一直没能找到一个明确的答案。,c++,c,C++,C,写下以下内容有什么区别(如果有的话): const int i; int const j; 当我们这样做的时候,两者之间有什么区别吗 const int a[10]; int const b[10]; (是的,我知道例如:代码> const int *p < /COD>和 int *const q< /Cord>,第一个是指向一个常量对象的可变指针,第二个是指向一个可变对象的常数指针)。 < P>在C标准或C++标准定义的意义上没有区别。 关于C标准,除了类型说明符外,我没有看到任何明确的声

写下以下内容有什么区别(如果有的话):

const int i;
int const j;
当我们这样做的时候,两者之间有什么区别吗

const int a[10];
int const b[10];

(是的,我知道例如:代码> const int *p < /COD>和<代码> int *const q< /Cord>,第一个是指向一个常量对象的可变指针,第二个是指向一个可变对象的常数指针)。

< P>在C标准或C++标准定义的意义上没有区别。 关于C标准,除了类型说明符外,我没有看到任何明确的声明说明符的顺序是无关的。不相关仅仅是定义含义的结果:

  • 声明有一个说明符列表,其中可能包括存储类说明符(如
    static
    )、类型说明符(如
    int
    )、限定符(如
    const
    )、函数说明符(如
    inline
    )等
  • 指定这些说明符的效果的子句只是说明它们存在时的作用。他们并没有说任何影响取决于顺序
  • 覆盖类型说明符的子句明确提到类型说明符可以是任意顺序的(例如
    long int long
    ),并且可以与其他声明说明符混合使用

请注意,指针指示符
*
,不是声明说明符的一部分。它是声明符的一部分,与指示数组的
[…]
和指示函数的
(…)
一起使用。出现在
*
后面的限定符是声明符的一部分,而不是声明本身的说明符列表的一部分。在简化形式中,声明是“以空格分隔的说明符列表以逗号分隔的说明符列表
”。说明符的初始列表可以是任意顺序。

不,它没有区别。三个限定符
const
volatile
restrict
,类型名称旁边的顺序没有区别
const
typename与C规范中的样式匹配。一个rmark。在更复杂的声明中排序。例如
const int*ptr
int*const ptr