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

概述:

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

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

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的值。

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

时间: 2024-10-05 14:47:21

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

[C/C++基础--笔试突击] 7.指针与引用

概述: 比较抽象的但又很有用的东西 0.0 void*指针:可以保存任何类型对象的地址. 指向指针的指针 函数指针 7.1 指针 一个有效的指针必然是一下三种状态之一: 1)保存一个特定对象的地址: 2)指向某个对象后面的另一个对象 3)0值. 若指针保存0值,表明它不指向任何对象.未初始化的指针是无效的,直到给该指针赋值后,才可使用. 注:*p++和(*p)++不等价,单目运算符*的优先级比++高,故*p++先完成取值操作,然后对指针地址执行++操作,而(*p)++是首先执行屈指操作,然后对该

[C/C++基础--笔试突击] 5.C预处理器、作用域、static、const、内存管理

概述: C预处理器处理程序的源代码,在编译器之前运行,通常以符号#开头. 还会涉及到static.const的知识点...有的和java类同...有的容易混淆T.T. 本章很多以前都没有接触过,在笔试中见过...如果有什么错误,欢迎指正~~ 5.1 C预处理器 C语言的预处理主要有三个方面的内容: 1)宏定义与宏替换: 2)文件包含: 3)条件编译. 考点比较少,讲述一下对应需要注意的地方. 宏替换的本质很简单--文本替换.关于宏定义与宏替换请注意一下几点: 1)宏名一般用大写,宏名和参数的括号

[C/C++基础--笔试突击] 6.函数

概述: 函数是有名字的计算单元,对程序的结构话至关重要. C++中,函数原型就是函数的声明,要加上分号. 这一部分还是比较轻松的~~ 6.1 参数传递 形参:出现在函数定义中,在整个函数体内都可以使用,函数体结束后被收回. 实参:主函数中调用,进入被调函数后,实参不能使用. 形参和实参的功能是数据传送,发生函数调用时,主调函数把实参的值传给被调函数的形参,从而实现主调函数向被调函数的数据传送. 函数调用时,C里面的两种传递: 1)值传递 2)指针传递(严格来说也属于值传递,只不过传递的是地址)

SQL Server调优系列基础篇(联合运算符总结)

前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析. 一.联合运算符 所谓的联合运算符,其实应用最多的就两种:UNION ALL和UNION. 这两个运算符用法很简单,前者是将两个数据集结果合并,后者则是合并后进行去重操作,如果有过写T-SQL语句的码农都不会陌生. 我们来分析下

java基础之数据类型/基本运算符

概述 java语言从1995年sun公司推出发展至今已经有22个年头,现在已经是使用最多的语言之一了.java又是一个比较容易入门的语言,我第一门接触的语言就是java.java发展.java的核心就是面向对象编程,其中多态.继承.封装来体现java的面向对象编程思想,还有java中的集合.流.反射等等.今天我会从最基础的数据类型和基本运算符开始说起:虽然说java的底层是由c去实现的,不过java和c还是有很多的不同也可以相互调用也就是JNI,我们会在以后去说去. 数据类型 在java中的数据

SQL Server调优系列基础篇(常用运算符总结)

原文:SQL Server调优系列基础篇(常用运算符总结) 前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握. 通过本篇可以了解我们平常所写的T-SQL语句,在SQL Server数据库系统中是如何分解执行的,数据结果如何通过各个运算符组织形成的. 技术准备 基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析. 一.数据连接 数据连接是我们在写T-SQL语

Python核心编程基础教程之Python运算符、运算符优先级、表达式简介--20150717

Python核心编程基础教程之Python运算符.运算符优先级.表达式简介 1.Python运算符与表达式: (1)认识Pyhton运算符1:什么是运算符 在Python运算中,有时候我们需要对一个或者多个数字或者一个或者多个字符串进行运算操作,*,+ (2)认识Pyhton运算符2:运算符有哪些以及运算符的使用方法 + :加 - :减 * :乘 / :除 ** :幂 < :小于 > :大于 != :不等于 // :求相除的整数部分 % :求相除的余数部分 & :按位与 | :按位或

java基础(3):变量、运算符

1. 变量 1.1 变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为重要的知识点! 什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载衣裤:饭盒是容器,用来装载饭菜.那么变量是装载什么的呢?答案是数据!结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据. 1.2 计算机存储单元 变量是内存中的小容器,用来存储数据.那么计算机内存是

python基础语法(运算符及优先级)

python基础语法(运算符及优先级) python语言支持的运算符类型 算数运算符 假设变量a为10,变量b为21 算数符 描述 实例 + 加-两个对象相加 a+b结果31 - 减-得到一个负数或者一个数减去另一个数 a-b结果-11 * 乘-两个数相乘或返回一个被重复若干次的字符串 a*b结果210 / 除-X除以Y b/a结果为2.1 % 取模-返回除法的余数 b%a结果为1 ** 幂-返回X的Y次幂 a**b结果为10的21次方 // 取整数-返回商的整数部分 b//a结果为2  比较(