- 算数 *** 作符
- 逻辑与关系 *** 作符
- 位 *** 作符
- 赋值 *** 作符
- 自增与自减运算符
- 其他运算符
- 成员访问 *** 作符
- 条件运算符:
一元、二元,都是针对 *** 作数的个数。一元其实就是正负号。一元的优先级最高,比乘除都高。
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
// 条件表达式只执行一个条件,另一个条件不执行
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)