C语言从入门到精通之【其他运算符】

sizeof运算符和size_t

sizeof运算符以字节为单位返回运算对象的大小。

例如 :sizeof(int)

打印转换说明,使用C99新增的**%zd转换说明 -- 如果编译器不支持%zd,请将其改
成
%u或%lu**。

C 语言规定,sizeof 返回 size_t 类型的值。这是一个无符号整数类型,但它不是新类型。

求模运算符

求模运算符(modulus operator)用于整数运算。求模运算符给出其左侧整数除以右侧整数的余数(remainder)。

例如:13%5=3(读作"13求模5")

递增/递减 运算符

递增运算符就是将运算对象加1,它有两种形式:第1种方式,++出现在其作用的变量前面,这是前缀模式;第2种方式,++出现在其作用的变量后面,这是后缀模式。两种模式的区别在于递增行为发生的时间不同。

i和j的初值都是5,经过i++,++j之后,结果都是6,那为何C语言创建了这两种形式?

原因之一是,紧凑结构的代码让程序更为简洁,可读性更高。这些运算符让程序看起来很美

观。

例如:

C 复制代码
int i = 5;
while (i > 0) {
  i--;
  //do something
}

写成这样更简洁

C 复制代码
int i = 5;
while (i-- > 0) {
  //do something
}

区别

看这个例子,a-- > 0的话,是先判断a>0了,再将a减1。而--b是先将b的值减1,再进行判断。这就是前面说的递增行为发生的时间不同。

优先级

递增运算符和递减运算符都有很高的结合优先级,只有圆括号的优先级 比它们高。因此,xy++表示的是(x)(y++),而不是(x+y)++。

不要自作聪明

如果一次用太多递增运算符,自己都会糊涂。涉及到优先级问题的时候,如果搞不清,不想记,直接用括号就好了。代码可读性也会更高,毕竟就算你知道,看你代码的那个人也不一定知道优先级顺序,但是你写成括号的,那看代码的人就一定知道先算什么。

相关推荐
强化湿件的技术神甫5 分钟前
KS检验和Lilliefors正态性检验方法
算法
2401_862880827 分钟前
i.MX6ULL 嵌入式 Linux 系统移植
驱动开发
yi01112 分钟前
DAY23: LeetCode 27 → 283:从移除元素到移动零,理解快慢指针的两种思路
人工智能·笔记·python·算法·leetcode·排序算法·双指针
xbzb14 分钟前
一边装一边报错:CentOS 7 + LNMP 跑 ECShop 的常见故障与解法
linux·运维·centos
怕浪猫19 分钟前
多 Agent 系统面试怎么答?我总结了 4 种经典架构
人工智能·算法·面试
学linux的QQ蛋23 分钟前
图解 Linux 驱动编译进内核的完整工作流程
linux·运维·服务器
程序员清风28 分钟前
排序算法:从冒泡排序到归并排序
数据结构·算法·排序算法
万年咸鱼28 分钟前
C语言内功心法篇——变量与数据类型
c语言·jvm·算法
承渊政道29 分钟前
Linux网络学习【UDP Socket编程实战:网络命令与客户端访问Linux验证】
linux·网络·学习·ubuntu·编程实战·udp socket
程序员-Benothing1 小时前
正则表达式详解:BRE、ERE、PCRE语法与实战案例
linux·运维·服务器