c - 将一个int数组(只有一个元素)分配给c中的一个整数

标签 c syntax variable-assignment

我在网页上看到我们可以这样做:

int k = {5};

当我自己尝试时,我发现这在 C 编程中有效,k 的值为 5

  • q1:为什么我们可以将整数数组(即使只有一个元素)赋值给整数类型的变量,应该不会有一些错误吗?
  • q2:这种类型的赋值是用来做什么的? (在什么情况下以及为什么我们使用它或者我们可能不再使用它?)

最佳答案

没有数组,C 语法允许这样做。这两个是等价的:

int k = 5;
int k = {5};

如初始化语法规则所示1,
initializer 可以是赋值表达式,对应于:

int k = 5;

初始化器也可以是一个{initializer-list},它可以是一个初始化器,它可以是一个赋值表达式:

int k = {5};

1(引自 ISO/IEC 9899:201x 6.7.9 初始化语法 1。)
初始值设定项:
赋值表达式
{ 初始化列表 }
{ 初始化列表 , }

初始化列表:
指定选择初始化器
initializer-list , 指定 opt initializer

关于c - 将一个int数组(只有一个元素)分配给c中的一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161769/

相关文章:

c++ - 从不兼容类型 'int' 分配给 [custom typdef]

c - Yocto-gcc 找不到共享库

php - 在 jquery ajax url 中包含 $_SERVER 文件路径的语法?

c - 使用 `int x = x;` 表达式(C 语言)可能是什么情况?

Java - 嵌套级别对象分配

c - 前向声明错误我无法理解

c - 带有注释(编译指示)的仪器 C 代码用于性能跟踪

javascript - ES6 中的非局部解构赋值

python - 重新分配列表内列表的元素

c++ - C++ 中的变量赋值(使用 libpng)不起作用?