C++编程 学习笔记(四)表达式

1N元运算符,就是作用N个对象的运算符
2左值和右值:左值一般可以修改,右值不可修改,如deftype(p)结果是int&,取地址符生成右值,deftype(&p)结果是int*,指向整形指针的指针
3优先级 略,记不住。。。
4算术运算符:讲下除/和取余%
(1)(-m)/n和m/(-n)都等于-(m)/(n);
(2)m%n如果不等于0,则符号和m相同,有(-m)%n=-(m)%(n)和m/(-n)=(m)%(n)
5赋值运算:(1)赋值运算优先级低,如while((i=get_value())!=42)表示一直取到42,while(i=get_value()!=42)表示比较get_value()!=42这个后再赋给i
(2)复合运算,像op=,写为a=a(op)b
6递增和递减:后置递增优先级高于*,但是会返回初始值为加1的值,如

auto pbeg=v.begin();
while (pbeg!=v.end()&&*beg>=0)
cout<<*pbeg++<<endl;//输出当前值并将pbeg向前移动一个元素

7运算符
(1)成员访问_箭头运算符与点运算符:ptr->men等于(*ptr).men
(2)条件运算符,满足右结合律,可以实现嵌套的,如

finalgrade=(grade>90)?"high pass"
                     :(grade<60)?"fail":"pass";

(3)位运算符:最好只处理无符号型
(4)sizeof运算符:返回一条表达式或者一个类型名字的字节数,满足右结合律,sizeof只返回string或者vector对象固定部分的大小,获得整个数组大小用数组大小除以单个元素的大小
Sales_data data, *p;
sizeof p;//指针所占空间大小
sizeof *p;//指针所指类型占空间大小(Sales_data)
8类型转换(1)隐式类型装换(2)显示类型转换(强制类型转换)cast-name(expression)其中type是要转换的类型,expression是要转换的值
Exercise:
编写一段程序,使用条件运算符从vector中找到哪些元素的值是奇数,然后将这些奇数值翻倍

#include <iostream>
#include <string>
#include <vector>
using namespace std;
void doubodd()
{
    vector <int> num , num1(0);//初始化0个元素
    int addnum,i;
    while (cin >> addnum)
        num.push_back(addnum);//添加vector中的元素
    for (auto it = num.cbegin(); it != num.cend();++it)//用begin和end的迭代器遍历vector
    {
        if ((*it) % 2 == 0)//*解引用取值
            i = *it ;
        else
            i = *it *2;
        num1.push_back(i);
    }
    for (auto i1:num1)//输出转变后的vector
    {
        cout << i1 << endl;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值