首页 > 解决方案 > int a = (2, 3, 4, 5); & int a = {2, 3, 4, 5}; 这些语句在 C/C++ 中是如何工作的?

问题描述

我正在试验这个 C 代码:

#include <stdio.h>
int main()
{
  int a = {6};
  printf("%d", a);
  
  return 0;
}

它打印 6。下面的代码也是如此:

#include <stdio.h>
int main()
{
  int a = (6);
  printf("%d", a);
  
  return 0;
}

但是这段代码是如何生成输出的:

#include <stdio.h>
int main()
{
  int a = (2, 3, 4, 5);  // or {2, 3, 4, 5} in place of parenthesis
  printf("%d", a--);
  printf("%d", --a);
  
  return 0;
}

它打印 53。为什么要考虑 int 变量a的最后一个值 5 (当它被括在括号中时)?另外,当 int 变量a括在花括号中时,为什么 2 呢?

标签: c

解决方案


推荐阅读