最近看y总的视频,在他的代码里经常出现~1,比如:

for (int i = h[u]; ~i; i=ne[i]) {dfs(e[i],depth+1);}

然后我就不解了,去百度了一通。百度说"~"在C语言里面是二进制取反的意思。
我还是有点不解,然后自己写代码测试了一下,得到以下结果:

~-1 = 0
~0 = -1
~1 = -2
~2 = -3
~15 = -16

有点补码内味了,对于十进制的数来说就是先价格负号,然后-1呗。那么上面那个for里面的~i就等价于i != -1了与下面的代码完全等价。

for (int i = h[u]; i != -1; i=ne[i]) {dfs(e[i],depth+1);}

“~i“在C语言的for循环中是什么意思相关推荐

  1. 小解的C语言笔记:循环中的取余操作 0%0

    循环中的取余操作 0%0 题目 总结 题目 p 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整数的每一位输出出来. 如输入1234,则输出: yi er sa ...

  2. 关于R语言在for循环中保存图片失败的问题

    发布于2021年10月25日 今天下午使用R语言的for循环,对多组数据分析并保存结果图片时遇到一个问题,保存的图片文件无法打开,大小也不对. 看到网上有个解决方法 png(file="GO ...

  3. C语言如何收集循环中的数,子数涵数·C语言——循环语句

    之前,我们讲过了编程中的三种结构(顺序.条件.循环),现在我们来看一下循环语句如何编写. 一.while循环语句(先判断后执行) 1 #include 2 int main(void) 3 { 4 i ...

  4. c语言循环中按键跳出,C语言跳出循环

    C语言跳出循环 C语言在程序员中备受青睐,成为最近25年使用最为广泛的编程语言.那么大家知道C语言跳出循环是怎么回事呢?下面一起来看看! 使用while或for循环时,如果想提前结束循环(在不满足结束 ...

  5. C语言之(有关%d和%u的有关内容,输出方法)(有符号和无符号在内存中的存储情况)(整形无符号数和有符号数是如何进行计算的,整形无符号数和有符号数在循环中的应用举例)

    在C语言的课本中,我们常见的是%u,但我们平时在写代码常用的确是%d,它们二者之间有什么区别呢? 表示形式上 %u表示输入输出格式说明符,是按照unsigned int(无符号十进制数据)格式输入或输 ...

  6. c语言中什么语句的作用是结束本次循环,用C语言结束这个循环的语句是什么

    用C语言结束这个循环的句子是"继续".control语句continue只能作用于循环体,它的作用是结束这个循环,跳转到判断循环的位置,即重启下一个循环. 本教程操作环境:wind ...

  7. c语言for循环加法,BigDecimal 在for循环中相加注意事项

    public static void main(String[] args) { BigDecimal bigDecimal = new BigDecimal(1); for (int i = 0; ...

  8. go语言for循环中修改临时变量无效

    总结 1. for循环中,遍历变量是临时变量,修改不影响原始变量 2. for循环中如果想修改原始变量,可以直接修改原始变量本身才行 实验如下图 代码如下 package main import &q ...

  9. c语言二重循环的盒图怎么画,全国计算机二级C语言程序设计讲义 循环嵌套.ppt...

    全国计算机二级C语言程序设计讲义 循环嵌套 第7讲 循环的嵌套 一.continue 语句和 break 语句 1.continue语句 2.break语句 二.循环的嵌套 三.goto语句 葛挑破隶 ...

  10. c语言零基础快速入门,C语言几种循环结构—零基础小白快速入门必学

    循环语句是用于重复执行某条语句(循环体)的语句,它包含一个控制表达式,每循环执行一次都要对控制表达式进行判断,如果表达式为真,则继续执行循环.C语言提供了3中循环语句,分别为while语句,do wh ...

最新文章

  1. 基于Android5.0的Camera Framework源码分析 (三)
  2. virtualenvvirtualenvwrapper on WindowsUbuntu
  3. 032_jdbc-mysql批量操作
  4. android 一个有漂亮动画效果的Dialog
  5. jQuery 时间控件推荐(1)
  6. 看AppStore评价
  7. 如何使用ABAP把数字转换成单词
  8. labuladong 的算法小抄_来自GitHub 68.8k star的硬核算法教程
  9. (转) 淘淘商城系列——Redis集群的搭建
  10. 编译安装RRDtool报错
  11. 修改mysql_MySQL UPDATE:修改数据(更新数据)
  12. html播放器滚动字幕,HTML 滚动字幕
  13. 面对互联网寒冬,程序员能够做什么?
  14. Oracle EBS使用adpatch工具打patch过程【Z】
  15. 考点图文详解 - 网络管理(第十一章)
  16. linux pcf8563开发文档,linux下的i2c与时钟芯片pcf8563通信
  17. 美国ZIPnbsp;Codenbsp;一览表
  18. bert中文情感分析二分类任务详解
  19. @PersistenceContext 注解在spring中代理
  20. layui单选框verify_layui lay-verify form表单自定义验证规则详解

热门文章

  1. java-数组-输出二十六个字母
  2. libero soc 11.9 modelsim仿真
  3. FPGA接口实现----增量式编码器
  4. c语言魔方编程,用C语言编程玩转魔方阵小游戏
  5. mount --bind作用与用法
  6. 基于 DirectShow 实现 SourceFilter 常见问题分析
  7. Android 传感器篇:(一)方向传感器
  8. 在线2进制8进制10进制16进制进制转换工具
  9. DeepLearning初窥门径
  10. JSHOP2学习1:环境配置(超详细教程)