前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++の表达式与语句

C++の表达式与语句

作者头像
leoay
发布2019-12-27 11:18:20
3030
发布2019-12-27 11:18:20
举报
文章被收录于专栏:leoayleoay

题图:NoCopy

字数:952 | 半分钟读完我1.5小时的思考

C++表达式

天我们简单介绍一下C++中的表达式,那么什么是表达式呢?我所理解的就是能表示操作数之间运算关系的表达式,那么表示操作数之间运算关系的是怎么实现的呢?是由运算符实现的,其实运算符才是表达式中的关键所在。下面我们重点说说运算符。

单目运算符与双目运算符

运算符有单目运算法与双目运算符之分。所谓单目运算符就是使用时只需要一个操作数,比如我们常见的取地址符(&),还有之前说到vector与array中的解引用运算符(*), 这个在C语言中,经常被用来取某个地址所存内容的值,因此又叫取值运算符。

代码语言:javascript
复制
#include <vector>

int main(){

    int num = 10;
    std::vector<int> vec1={1, 2, 3, 4};
    for(auto 1 = vec1.begin(); 1 != vec1.end(); ++i)
        std::cout << *i << std::endl;
}

重载运算符

C++中有一种比较特殊的运算符,重载运算符。我们知道C++的运算符可以用在基本内置类型,也可以用在类类型。那么这两者有什么不同呢?当用于类类型时,这些运算符可以被用户自定义,也就是说它可以有新的含义。因为形同义不同所以被称作重载运算符。

那么,我们在这之前有没有见过呢?当然!其实我们常见的IO库中 << 和 >>就是重载运算符,除此之外,我们之前介绍的string, vector, array, 迭代器等,它们使用的运算符都是重载运算符。这样初步看,重载运算符相对于普通的运算符更加灵活。实际上,重载运算符就像是我们自己创造的一样,我们可以定制化我们自己的运算符。

左值和右值

下面简单说一下左值与右值,我刚学习C++的时候,有一个感觉就是,左值?右值?傻傻分不清楚!所以下面我一定要把这两个概念讲清楚,因为后面我们学到C++中的高阶用法时,这两个概念会时不时蹦出来, 其实一查,也没那么难。

C++表达式只可能是左值和右值其中的一种。左值与右值是由一定的历史渊源的,它们继承自祖辈C语言,只不过C语言中的概念很简单:就是左值能放在赋值符号的左边,右值只能放在赋值符号的右边。

然鹅,C++中的就要复杂得多,在不同的符号前,它们的用法不用,比如:

赋值运算符、取地址符、内置解引用运算符、下标运算符等等,它们的用法都是不同的。

为了赶在12点前发出去看来今天的文章是写不完了,没事儿,明天继续接着说。先发出去吧,我开始写明天的文章了,毕竟咱说好的日更,不能停,天塌了,也必须日更!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 leoay 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档