| |
|
开发:
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、算术操作符 算术操作符包含 + ,- ,*, / ,%。 ①除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。 ②对于/操作符,如果两个操作数都为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法。 ③%操作符的两个操作数必修都为整数,返回的是整出之后的余数。 int main() ?? ?int ret2 = 9 % 2;//取模操作符,整除之后看余数,对于取模操作符,两个操作数只能是整数,不能是浮点数,返回的是整除之后的余数。 2、移位操作符 <<左移操作符? >>右移操作符 移位操作符移动的是二进制位,对于整数的二进制位有三种形式,即原码 反码 补码 。对于正整数来说,原码 反码 补码都一样,对于负整数来说,原码 反码 补码需要计算: 原码是按照数字正负写出的32位二进制数,首先根据数的正负得到最高位的符号位,正整数为0,负整数为1 2: 00000000 00000000 00000000 00000010 -2: 10000000 00000000 00000000 00000010 ①正整数原码 反码 补码的计算:(以1为例) 首先,正整数符号位为0 原码:00000000 00000000 00000000 00000001,由于正整数原码 反码 补码都一样,所以得到 反码:00000000 00000000 00000000 00000001 补码:00000000 00000000 00000000 00000001 ②负整数原码 反码 补码的计算:(以-1为例) 首先,负整数符号位为1 原码:10000000 00000000 00000000 00000001,对于负整数原码 反码 补码需要计算 负整数的反码为原码符号位不变,其他位按位取反,即; 反码:111111111 11111111 11111111 11111110 负整数的补码为反码+1,即; 补码:111111111 11111111 11111111 11111111 回到上述移位操作符: int main()
3、位操作符 位操作符包含:按位与&、按位或|,按位异或^ int main() 按位与: ? ??a&b反码:00000000 00000000 00000000 00000010 ? ? a&b补码:00000000 00000000 00000000 00000010 按位或: 按位异或: ?? ?int f = a ^ b;//二进制按位异或的计算规则为,相同为0,相异为1. ? ? return 0; 4、赋值操作符 赋值操作符包含:=、+=、-=、/=、*=、>>=、<<=等 int main() ?? ?return ?0; 复合赋值 int main() ? ? ? ? a=a+10; ? ? ? ? a+=10;????????a=a+10可写成a+=10 ? ? ? ? a=a-10; ? ? ? ? a-=10;????????a=a-10可写成a-=10 ? ? ? ? a=a/10; ????????a/=10;????????a=a/10可写成a/=10 ? ? ? ? a=a*10; ? ? ? ? a*=10;????????a=a*10可写成a*=10 ? ? ? ? a=a>>1; ? ? ? ? a>>=1;????????a=a>>1可写成a>>=1 ? ? ? ? a=a<<1 ? ? ? ? a<<=1? ? ? ??a=a<<1可写成a<<=1 ????????return 0 5、单目操作符 单目操作符包含:sizeof ++ -- ! & * ①sizeof操作符,不实函数,是计算变量或类型创建变量的内存大小,单位是字节,和内存中存放什么数据没有关系 int main() { ? ?????????? ?? ?char arr[10] = "abc"; ?? ?int a = 10; ?? ?int b = 5; } ②++ --操作符 int main() ③!逻辑反操作 (真变成假,假变成真,0为假,非0为真) int main() { ? ? ? ? int a = 0; ? ? ? ? int b = !a; ? ? ? ? printf("%d\n",b);判断为真时系统默认打印1 ? ? ? ? int a = 10; ? ? ? ? if(a)? ?a为真时,打印hehe ????????{ ? ? ? ? ? ? ? ? printf("hehe\n"); ????????} ? ? ? ? if(!a)? ?a为假时,打印hehe ????????{ ? ? ? ? ? ? ? ? printf("hehe\n"); ????????} ? ? ? ? return 0; } ④&和*取地址操作符和解引用操作符 int main() { ? ? ? ? int a = 10; ? ? ? ? int* p = &a;在这里就是取变量a的地址,这里的p实际上就是一个指针变量,*表示这是一个指针,p是一个变量由于存储变量a的地址,int说明这个指针指向的是一个int型的数据。 ? ? ? ? *p = 20; 此时的*是解引用操作符,用过p地址得到20,此时的a就变成20 ? ? ? ? int arr[10] = {0}; ? ? ? ? arr;表示数组首元素的地址 ? ? ? ? &arr[0];表示取数组首元素的地址 ????????&arr[9];表示取数组第十个元素的地址 ????????&arr;表示取数组的地址 } ⑤?~ 按位取反操作符 后面会继续发表有关后面其他操作符的理解,作为一个C语言的初学者,这算是我的第一篇博客,也是浅显的谈了一下我对于操作符的理解和认知,欢迎大佬批评指正! |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/24 11:36:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |