C++ 基础与深度分析 Chapter4 表达式基础与详述(算数、逻辑、位、赋值、自增减、其他运算符)

C++ 基础与深度分析 Chapter4 表达式基础与详述(算数、逻辑、位、赋值、自增减、其他运算符),第1张

文章目录
  • 算数 *** 作符
  • 逻辑与关系 *** 作符
  • 位 *** 作符
  • 赋值 *** 作符
  • 自增与自减运算符
  • 其他运算符
    • 成员访问 *** 作符
    • 条件运算符:

算数 *** 作符


一元、二元,都是针对 *** 作数的个数。一元其实就是正负号。一元的优先级最高,比乘除都高。

int main()
{
    int a[3] = {1, 2, 3};
    int* ptr = a;
    cout << ptr + 1 << endl; // 0x7ffee7b946e0 支持指针加减法
    cout << *(ptr + 1) << endl; // 2
    cout << std::cend(a) - std::cbegin(a) << endl; // 3 2个指针的相减,不支持2个指针相加
}

除法会向0取整。(小数点直接去掉 )
%求余 *** 作,直接收整数。

ppt公示。

逻辑与关系 *** 作符




自己写代码的时候,一定要加括号。


注意这里和数学是不一样的。












位 *** 作符




int main()
{
    signed char x = 3; // 00000011
    signed char y = 5; // 00000101
    cout << (x & y) << endl; // 1 00000001
    cout << (x | y) << endl; // 7 00000111
    cout << (x ^ y) << endl; // 6 00000110
}



左移右移,要注意符号位,原来符号是0或者1,补的时候,就是相同的。
左移1位,为乘以2
右移1位,为除以2.





赋值 *** 作符







自增与自减运算符


前缀自增运算符,返回运算之后的值。后缀自增运算法,返回运算之前的值。

int main()
{
    int x = 3;
    int y;
    y = x++; // 后缀自增运算符,返回之前的值
    cout << x << endl; // 4
    cout << y << endl; // 3 先复制,再执行x++
}

int main()
{
    int x = 3;
    int y;
    y = ++x; // 前缀自增运算符,返回之后的值
    cout << x << endl; // 4
    cout << y << endl; // 4
}

其他运算符

成员访问 *** 作符

struct Str
{
    int x;
};


int main()
{
    Str A;
    A.x;

    Str* ptr = &A;
    (*ptr).x; // 小括号这里不能删, 点的作用高于*,点是成员访问
    ptr->x; // ->访问指针所指向的对象的成员
}




->返回一个左值。

条件运算符:
int main()
{
    cout <<  (true ? 3 : 5) << endl; // 3 条件运算符,接受3个 *** 作数
}
int main()
{
    int x = 1;
    int y = 2;
    true ? (++x) : (++y);
    cout << x << endl; // 2
    cout << y << endl; // 2
    // 条件表达式只执行一个条件,另一个条件不执行
}









欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1499300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存