IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言 --- 操作符 -> 正文阅读

[C++知识库]C语言 --- 操作符

《C语言入门》

? ? ? ? ? ? ? ??热情篇? — —?热情像一对翅膀,带我飞过山岭。

?

目录

?“武器库”

词法陷阱

1.算术操作符

2.移位操作符

3.位操作符

4.赋值操作符

5.单目操作符

6.关系操作符

7.逻辑操作符

8.三目操作符

9.逗号表达式

10.函数调用和结构成员


?“武器库”

整数的二进制表示:原码、反码、补码。

一个整数可以存放到int 类型中,int类型占4个字节,32个bit位。二进制序列的第一位是符号位,符号位是0表示正数,符号位是1表示负数。

例:

15(正数的原码、反码、补码相同)

原码:00000000?00000000?00000000?00001111

反码:00000000?00000000?00000000?00001111

补码:00000000?00000000?00000000?00001111

?-15

原码:10000000?00000000?00000000?00001111

反码:11111111? ?11111111? ?11111111? ?11110000(原码的符号位不变,其它位按位取反

补码:11111111? ?11111111? ?11111111? ?11110001(反码+1

词法陷阱

' = '? 不同于 ‘ == ’:=作为赋值运算,‘==’作为比较

‘ & ’ 不同于 ‘ && ’? ? ?‘ | ’? ?不同于? ‘?|| ’

#include <stdio.h>
int main()
{
	int a = 5;
	int b = 0;

	int c = a & b;
	int c1 = a && b;
	int d = a | b;
	int d1 = a || b;

	printf(" c = %d\n c1 = %d\n d = %d\n d1 = %d",c,c1,d,d1);
	return 0;
}

测试练习:

#include <stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;
	//i = a++||++b||d++;
	//i = ++a || ++b || d++
	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
	return 0;
}

???

1.算术操作符

+ ? -? ? *? ? /? ? %
加减乘除,伴随着我们整个学习生活。前三个就不多介绍了。
‘/’?:除法在c语言中有着它自己的个性, 如果两个操作数都为整数,执行整数除法,这里要注意如果不能整除的话只保留整数部分。而只要有浮点数执行的就是浮点数除法。

?

?

?

‘%’:取余操作符在c语言中也是经常出现的,% 操作符的两个操作数必须为整数。

测试结果:

测试两个整数?返回的是整除之后的余数:

?

2.移位操作符

移位操作符的操作数只能是整数,而移位操作符移动的就是内存中存储整数的二进制补码。
注意: 不要移动负数位
<< 左移操作符:(整个二进制序列向左移动一位, 左边抛弃、右边补 0

?

?

>> 右移操作符:
算数右移动( 右边丢弃 ,左边补原符号位

?

?逻辑右移动(不常见):(右边抛弃,左边补0)

3.位操作符

位(二进制位)
?“ &”: 按位与,二进制的补码 与,有0是0,两个同时为1才是1。

|”: 按(二进制位)位或,有1为1,全0才是0。

?

?“ ^”: 按位异或,运算规律,相同为0,相异为1。

?

??“^”:按位异或规律:a^a = 0; b^b = 0; a^a^b = b;b^b^a=a;

?练习:不能创建临时变量(第三个变量),实现两个数的交换。
解法1:
#include <stdio.h>
int main()
{
	int a = 3;
	int b = 5;
	a = a + b;
	b = a - b;
	a = a - b;
	printf("a = %d b = %d",a,b);
	return 0;
}

缺点:两个整型相加的时候可能出现?超过一个整型的大小。

解法2:
#include <stdio.h>
int main()
{
	int a = 3;
	int b = 10;
	a = a ^ b;
	b = b ^ a;//b^a^b
	a = a ^ b;//a^b^b
	printf("a = %d b = %d", a, b);
	return 0;
}

4.赋值操作符

'=':赋值操作符:

int a = 10;
int b = 5;
itn c= a+b;
复合赋值符 :+=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=
例:sum = sum + i; 等价与 sum += i;

5.单目操作符

! ? ? ? ? ? 逻辑反操作
- ? ? ? ? ? 负值
+ ? ? ? ? ? 正值
& ? ? ? ? ? 取地址
sizeof ? ? ? 操作数的类型长度(以字节为单位)
~ ? ? ? ? ? 对一个数的二进制按位取反
? 前置?++ 和 --,先增加(递减),在使用。
? 后置? ++ 和 -- , 先使用,再增加(递减)。
*? ? ? ? ?? 间接访问操作符 ( 解引用操作符 )
( 类型 ) ? ? ? 强制类型转换

6.关系操作符

(>)?(<) (>=)? (<=)? (!=)? ?( ==)?? ? ?

7.逻辑操作符

特点:只关注真假(0为假,非0为真)
&& ? ? 逻辑与? ? ?一假则假

?测试:

|| ? ? ? ? 逻辑或? ? ?一真则真(有一个条件满足就可以)

8.三目操作符

使用三目操作符找两个数中较大值
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d",&a,&b);
	int c = (a > b ? a : b);
	printf("%d",c);
	return 0;
}

9.逗号表达式

逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

?

10.函数调用和结构成员

'( )': 函数调用操作符,接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

访问一个结构的成员:.??结构体.成员名 ,->??结构体指针->成员名

struct room
{
	char room[20];
	int  price;
};
int main()
{
	struct room a = {"标间",66};
	printf("%s %d\n",a.room,a.price);

	struct room *b =&a;
	printf("%s %d\n",(*b).room,(*b).price);
	printf("%s %d\n",b->room,b->price);
	return 0;
}

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:25:04  更:2022-08-06 10:27:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:27:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码