码迷,mamicode.com
首页 > 编程语言 > 详细

[C/C++基础--笔试突击] 4.运算符及优先级

时间:2015-08-13 21:48:01      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

概述:

  表达式,由操作数和运算符组成。

  笔试中通常的考点有操作符的优先级、异或等关系运算

 

4.1 赋值语句

赋值运算符"=",操作符左边代表着存储单元的地址,称为左值,右边带表着需要的值,称为右值。

注:赋值操作符的左操作数必须是非const的左值

int const& max(int const& a, int const& b) {
    return a > b ? a : b;
}
int& fun(int& a) {
    a += 5;
    return a;
}
int* fun2(int* a) {  
    return a;
}

int main() {
    int ii = 10, j = 20;
    fun(ii) = 800; // 语句1 正确 执行后 ii = 800
    printf("%d", ii);
    max(ii, j) = 200; // 语句2 错误 表达式 max(ii, j)不是可修改的左值
    printf("%d", ii);
    fun2(&ii) = 200; // 语句3 错误 无法从int转化为int*
    printf("%d", ii);
    *fun2(&ii) = 200; // 语句4 正确
    printf("%d", ii);
    system("pause");
}

其次,赋值操作符具有右结合特性。当表达是含有多个赋值操作符时,从右向左结合。

 

4.2 自增与自减运算符

前缀运算时"先变后用",而后缀运算时"先用后变"。

以++为例:

前缀:++a 表示取a的地址,增加它的内容,然后把值放在寄存器中;

后缀:a++ 表示取a的地址,把它的值装入寄存器,然后增加内存a的值。

 

由于个人原因,今天先看到这里,明天继续 ^-^ ,未完待续.....

[C/C++基础--笔试突击] 4.运算符及优先级

标签:

原文地址:http://www.cnblogs.com/TinyBobo/p/4728366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!