"int i=j=k=1;"为什么不是一个合理的声明式

C++语言 码拜 9年前 (2016-04-07) 737次浏览
本人想在一个句子里面声明多个变量并赋同样的值,可否写成

int i=j=k=1;

也就是声明i,j,k三个标量然后赋值为1
1. 事实上上面这个句子是编译不过去的。为什么呢?
2. int i=j=1是不是j=1, 然后把j=1作为一个字表达式,返回值赋给i?
3. C++标准有没有说i=j=1这样的句子应该怎么样解析,有什么章节专门说吗?

解决方案

5

1. j 和 k 没有声明
2. 是
3. 附录A Grammar summary

30

  int j,k;
  int i=j=k=1;
  //这样就可以了
 //一个声明里面,声明不同的变量,需要逗号分隔开来。
 int j,k,t=j=k=1; //这样也可以(C++可以,C 不太清楚可以不)。

10

int i=j=k=1; 这句话只是声明了i 然后赋值i j k
所以这条语句前你得声明过j 与k才是正确的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明"int i=j=k=1;"为什么不是一个合理的声明式
喜欢 (0)
[1034331897@qq.com]
分享 (0)