区别" INT I = 1,2,3"和" INT I =(1,2,3)" - 逗号分隔符变量声明 [英] Difference between "int i=1,2,3" and "int i=(1,2,3)" - variable declaration with comma operator

查看:157
本文介绍了区别" INT I = 1,2,3"和" INT I =(1,2,3)" - 逗号分隔符变量声明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  1. INT I = 1,2,3;


  2. INT I =(1,2,3);


  3. INT I; I = 1,2,3;


什么是这些语句之间的区别?我不能让任何特定的理由。


解决方案

 声明1结果:编译错误。

=经营者有较高的precedence比,运营商。
逗号充当这里的分隔符。编译器创建一个整型变量'我'和'1'对其进行初始化。
编译器未能创建整数变量'2'为'2'是不是一个有效indentifer


 声明2结果:I = 3

()经营者具有较高的precedence比=。所以,第一,支架运营商进行评估。从左至右'()'操作符被操作。但它始终是最后那个被分配的结果。


 声明3:结果:I = 1

=经营者有较高的precedence比,运营商。所以'我'会被'1'初始化。 '2'和'3'只是不断前​​pression。所以没有任何效果。

  1. int i=1,2,3;

  2. int i=(1,2,3);

  3. int i; i=1,2,3;

What is the difference between these statements? I can't get to any particular reason for it.

解决方案

Statement 1 Result : Compile error.

'=' operator has higher precedence than ',' operator. comma act as a separator here. the compiler creates an integer variable 'i' and initializes it with '1'. The compiler fails to create integer variable '2' as '2' is not a valid indentifer.


Statement 2 Result: i=3

'()' operator has higher precedence than '='. So , firstly, bracket operator is evaluated. '()' operator is operated from left to right. but it is always the result of last that gets assigned.


Statement 3: Result: i=1

'=' operator has higher precedence than ',' operator. so 'i' gets initialized by '1'. '2' and '3' are just constant expression. so have no effect .

这篇关于区别" INT I = 1,2,3"和" INT I =(1,2,3)" - 逗号分隔符变量声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆