C++中赋值语句的执行顺序
2013-05-08 14:07
1351 查看
(1)C++的赋值语句具有其他高级语言的赋值语句的功能。但不同的是: C++中的赋值号“=”是一个运算符,可以写成
a=b=c=d;
而在其他大多数语言中赋值号不是运算符,上面的写法是不合法的。
(2) 关于赋值表达式与赋值语句的概念。在C++中,赋值表达式可以包括在其他表达式之中,例如
if((a=b)>0) cout<<"a>0"<<endl;
按语法规定if后面的( )内是一个条件。现在在x的位置上换上一个赋值表达式“a=b”,其作用是:先进行赋值运算(将b的值赋给a),然后判断a是否大于0,如大于0,执行cout<<"a>0"<<endl;。在if语句中的“a=b”不是赋值语句而是赋值表达式,这样写是合法的。不能写成
if((a=b;)>0) cout<<"a>0"<<endl;
因为在if的条件中不能包含赋值语句。C++把赋值语句和赋值表达式区别开来,增加了表达式的种类,能实现其他语言中难以实现的功能。
“=”执行的顺序是自右向左,所以i=j=10; 先执行j=10;,再执行i=j; 结果为:i=10,j=10;
a=b=c=d;
而在其他大多数语言中赋值号不是运算符,上面的写法是不合法的。
(2) 关于赋值表达式与赋值语句的概念。在C++中,赋值表达式可以包括在其他表达式之中,例如
if((a=b)>0) cout<<"a>0"<<endl;
按语法规定if后面的( )内是一个条件。现在在x的位置上换上一个赋值表达式“a=b”,其作用是:先进行赋值运算(将b的值赋给a),然后判断a是否大于0,如大于0,执行cout<<"a>0"<<endl;。在if语句中的“a=b”不是赋值语句而是赋值表达式,这样写是合法的。不能写成
if((a=b;)>0) cout<<"a>0"<<endl;
因为在if的条件中不能包含赋值语句。C++把赋值语句和赋值表达式区别开来,增加了表达式的种类,能实现其他语言中难以实现的功能。
C++中连续使用赋值语句的执行顺序
如:int i=1,j=2; i=j=10;
“=”执行的顺序是自右向左,所以i=j=10; 先执行j=10;,再执行i=j; 结果为:i=10,j=10;
相关文章推荐
- C++代码执行顺序
- 为什么我用Eclipse for C/C++写C语言,为什么输入输出不是按照代码的顺序执行?
- c++ 嵌套new操作构造对像的执行顺序
- c++中的类(构造函数,析构函数的执行顺序)
- C,C++表达式求值顺序(执行点,副作用)
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- c++多重继承的构造执行顺序
- 浅出C++对象模型——理解构造函数、析构函数执行顺序
- c++ 内存申请释放,构造函数,析构函数,执行顺序
- c++中派生类构造函数的执行顺序
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- C++ 虚基类的析构函数的执行顺序
- 【C++】简单的继承执行顺序
- C++-理解构造函数、析构函数执行顺序
- C++构造和析构执行顺序
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- C++程序抛出异常后执行顺序
- C++继承时构造函数和析构函数的执行顺序