6-运算
一、基本运算
1.算术运算符
- + 加法运算符
- - 减法运算符,或负值运算符
- * 乘法运算符
- / 除法运算符
- % 模运算符,或称取余运算符,要求%两侧均为整型
2.关系运算符
- < 小于运算符
- <= 小于等于运算符
- > 大于运算符
- >= 大于等于运算符
- == 等于运算符
- != 不等于运算符
C语言中没有boolean类型
* 在C语言中,关系运算的结果为"真"就返回1,"假"就返回0
int a1 = 5 > 4; // 1 int a2 = 5 < 4; // 0
在C语言中,任何非0值都为"真",只有0值才为"假"
注意点:
int a = 10;
if (a = 0) {
printf("条件成立");
} else {
printf("条件不成立");
}
上面代码成功运行,输出 “条件不成立”
但是,这里有很大的坑!!
你本来是想判断a是否为0,那么本应该写if (a == 0),若你误写成了if (a = 0),那将是一件非常可怕的事情,因为编译器又不报错,这样的BUG就难找了。因此,像a==0这样的表达式,最好写成0==a,若你误写成0=a,编译器会直接报错的。
拓展:
在C语言中,可以不保存关系运算的结果,下面写法是合法的:
1 int a = 10;
2
3 a > 10;
4 a == 0;
5 printf("%d", a);
这里又是一个陷阱,假设你的本意是想给a赋值为0,那么本应该写a = 0; ,若你误写成a == 0; ,那将又是一个非常难找的BUG,因为编译器根本不会报错。在1993年的时候,这个BUG差点让一桩价值2000万美元的硬件产品生意告吹,因为如果这个BUG不解决,这个产品就没办法正常使用。
3.逻辑运算符
- && 逻辑与运算符
- || 逻辑或运算符
- ! 逻辑非运算符
逻辑运算的结果也只有两个:成立就为"真",返回1;不成立就为"假",返回0
4.赋值运算符
1.简单的赋值运算符 = :int a = 5;
2.复合赋值运算符
- += 加赋值运算符。如a += 3+1,等价于 a = a +(3+1)
- -= 减赋值运算符。如a -= 3+1,等价于 a = a -(3+1)
- *= 乘赋值运算符。如a *= 3+1,等价于 a = a *(3+1)
- /= 除赋值运算符。如a /= 3+1,等价于 a = a /(3+1)
- %= 取余赋值运算符。如a %= 3+1,等价于 a = a %(3+1)
5.自增运算符和自减运算符
- ++ 自增运算符。如a++,++a,都等价于a = a+1
- -- 自减运算符。如a--,--a,都等价于a = a-1
6.逗号运算符和逗号表达式
逗号运算符主要用于连接表达式
* 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为:
表达式1, 表达式2, … …, 表达式n
举例:(输出结果为30)
1 int main() { 2 int a = 2; 3 int b = 0; 4 int c; 5 6 c = (++a, a *= 2, b = a * 5); 7 8 printf("c = %d", c); 9 }
7.三目运算符
一般形式为:表达式1 ? 表达式2 : 表达式3
int a = (b > 5) ? 10 : 9;
8.sizeof
* sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。
int size = sizeof(10); printf("10所占的字节数:%d", size);
输出结果:
- sizeof( 数据类型 )
sizeof(float);
注意,不可以写成sizeof float;
出处:http://www.cnblogs.com/0zcl
文章未标明转载则为原创博客。欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
1.非系统的学习也是在浪费时间
2.做一个会欣赏美,懂艺术,会艺术的技术人
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?