为什么两种情况下的行为不同1。int i = 1,2,3; 和第二。我 i = 1,2,3;

意义

在GCC编译器上工作时,以下两种用C程序进行运算符的情况观察到了不同的行为。

1。

 int i = 1,2,3;

 printf("%d",i);                     // this will give compile time error

和,

2。

int i;

i = 1,2,3;

printf("%d",i);    // Its output will be 1.

在第一种情况下,编译器给出了错误“错误:期望标识符或数字常数前的'('。”在第二种情况下,没有错误,并且输出为1。在这两种情况下,谁能详细解释编译器的行为?解释两个陈述?

预先感谢您的输入。

亚历克斯·B
  1. 在第一种情况下,逗号将相同类型的几个变量的声明和初始化分开

    int i = 1, j = 2, k = 3;
    

    您可以添加括号以告诉编译器这是一个表达式。

    int i = (1, 2, 3);
    

    如果将它们组合在一起,则更容易理解为什么逗号不带括号是不明确的:

    int i = (1, 2, 3), j = 4, k = 5;
    
  2. 在第二种情况下,逗号分隔3个表达式。

    (i = 1), 2, 3
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

std :: initializer_list <int>({1,2,3})和{1,2,3}有什么区别?

tf.constant([1,2,3])和tf.constant([[1,2,3]])有什么区别

Ruby中[1,2,3] .to_enum和[1,2,3] .enum_for之间的差异

为什么 a[1:-1:-1] 和 a=[1,2,3] 返回 []?

将1,2,3分为个人1、2和3

在 sql 中将值从 ('1,2,3') 拆分为 ('1','2','3') 或 (1,2,3)

{1,2,3}与{1..3}之间的差异

Python:(1,2,3)和[1,2,3]有什么区别,什么时候应该使用它们?

为什么 a = [1,2,3] 和 a[:] 不一样

在Javascript中将列表[[1,2,3]`转换为字符串'{1,2,3}'

如何在Ruby中将“ [1,2,3]”转换为[1,2,3]

是“在(1,2,3)中设置a = 2和b”有效的mysql语法

为什么`“%,2,%”之类的“,1,2,3,”`返回零?

int t [1000000] = {1,2,3}; 产生一个大的二进制文件,为什么呢?

为什么null不in(1,2,3)为false

Haskell:'做[1,2,3]; [“ hello”]'行为说明

Matplotlib:scatter.legend_elements()不是1,2,3

程序排除1,2,3以外的数字

1,2,3 SQL Server每次自动增加列

在 Python 中将“[1,2,3]”转换为整数

使用WHERE x IN(1,2,3)清理MySQL资源

如何生成多页[X]的框[1,2,3 ...]

生成范围(1,2,3 ... 99; 1,2,3 ... 99;)的唯一数字系列,没有重复

为什么x in(1,2,3):比x == 1或x == 2或x == 3快?

对于np.array([1,2,3]),为什么形状是(3,)而不是(3,1)?

从堆栈中,用户给出了1,2,3的多个选项,我们需要执行指定的操作

在Array(3)与[1,2,3]之间映射常量函数:为什么它们不同

如何在R中将c(1,2,3)和c(4,5,6)连接到c(1,4,2,5,3,6)?

为什么Julia>(1,2,3)返回(1,2,0)