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

2023-11-05

最近看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);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 将集合绑定到自定义控件属性

    我没有运气尝试将数据集合绑定到我的自定义控件的属性 我已经实现了该控件的字符串属性的机制 在此处提供了一些帮助 并期望集合类型同样简单 但是我无法让它再次工作 这是我的自定义控件视图
  • 通过 SocketCAN 进行 boost::asio

    我正在考虑利用升压阿西奥 http www boost org doc libs 1 49 0 doc html boost asio html从a读取数据套接字CAN http en wikipedia org wiki SocketCA
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 根据 N 个值中最小的一个返回不同的结果

    不确定如何使标题更具描述性 所以我只是从一个例子开始 我使用下面的代码位 它从枚举中选择一个方向 具体取决于四个轴中哪一个与给定方向相比形成最小角度 static Direction VectorToDirection Vector2 di
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 找不到 assimp-vc140-mt.dll ASSIMP

    我已经从以下位置下载了 Assimp 项目http assimp sourceforge net main downloads html http assimp sourceforge net main downloads html Ass
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • 为什么 set_symmetry_difference 无法与比较器一起使用?

    Example program include
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 运行选定的代码生成器时出错:“未将对象引用设置到对象的实例。”错误?

    我已经尝试了所有解决方案 例如修复 VS 2013 但没有用 当您通过右键单击控制器文件夹来创建控制器并添加控制器时 然后右键单击新创建的控制器的操作并选择添加视图 当我尝试创建视图时 就会发生这种情况 它不是一个新项目 而是一个现有项目
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 我可以让 ungetc 取消阻止阻塞的 fgetc 调用吗?

    我想在收到 SIGUSR1 后使用 ungetc 将 A 字符重新填充到标准输入中 想象一下我有充分的理由这样做 调用 foo 时 stdin 中的阻塞读取不会被收到信号时的 ungetc 调用中断 虽然我没想到它会按原样工作 但我想知道是
  • cout 和字符串连接

    我刚刚复习了我的 C 我尝试这样做 include
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • ubuntu 安装 cuda10.2 8.0 及 cuBLAS

    Ubuntu 18 04安装 cuda10 2 安装显卡驱动 Install NVIDIA driver sudo apt get install no install recommends nvidia driver 430 Reboot
  • ChatGPT开源吗

    作为一个由OpenAI开发的AI模型 ChatGPT的源代码并没有完全开源 OpenAI提供了API 以让开发者在他们的应用程序中使用ChatGPT的能力 但是源代码并没有公开发布 然而 OpenAI开源了一个与GPT 2相似的模型 称为G
  • 使用Python究竟可以做什么?下面是Python的3个主要应用

    前言 如果您正在考虑学习Python 或者您最近才开始学习 您可能会问自己 我用Python到底能做什么 这个问题很难回答 因为Python有很多应用程序 但随着时间的推移 我发现Python有3种主要的流行应用 Web开发 数据科学 包括
  • 原生js——实现ios辅助触控的悬浮球案例

    用过iphone的都知道 ios系统有一个重要的功能 辅助触控 可以让我们在触摸屏幕有困难或需要自适应配件的情况下使用iphone 辅助触控中 悬浮球充当着重要角色 它置顶悬浮在屏幕边缘 可任意移动 既不影响用户正常操作系统 又能提供许多功
  • 以太坊生产网络/测试网络/私有网络

    要理解以太坊 PrivateNetwork 先要理解以太坊的两种官方网络 目前以太坊官方提供了两种网络 生产环境网络 测试网络 TestNet 下面将分别简单讲解下这两种网络 以太坊生产网络 以太坊的生产网络顾名思义 也就是产生真正有价值的
  • SpringBoot 封装Windows 性能监控

    整体项目结构 BlueSky 的pom xml 文件
  • 华为OD机试 - 观看文艺汇演问题(JS)

    题目描述 为了庆祝中国共产党成立100周年 某公园将举行多场文艺表演 很多演出都是同时进行 一个人只能同时观看一场演出 且不能迟到早退 由于演出分布在不同的演出场地 所以连续观看的演出最少有15分钟的时间间隔 小明是一个狂热的文艺迷 想观看
  • 【数据结构常见七大排序(二)】—选择排序篇【直接选择排序】And【堆排序】

    目录 前言 1 直接选择排序 1 1基本思想 1 2直接选择排序实现过程 1 3动图助解 1 4直接选择排序源码 2 堆排序 2 1堆排序的概念 2 2堆排序源码 前言 选择排序有两种常见的 直接选择排序 堆排序 1 直接选择排序 1 1基
  • 浅谈linux性能调优之十七:进程绑定与中断绑定

    1 使用taskset设置CPU亲和性 taskset搜索并设定运行进程的CPU亲和性 根据进程ID 它还可用于启动给定CPU亲和性的进程 这样就可将指定的进程与指定的CPU或者一组CPU捆绑 CPU 亲和性使用位掩码表示 最低位对应第一个
  • 2021年南京市高考成绩查询,2021年南京市所有的高中排名,南京市高中高考成绩排名出炉...

    1南京市第十三中学 2南京田家炳高级中学 3南京金陵中学 4南京南师大附属扬子中学 5南京市第六十六中学 6南京市宁海中学分校 7南京江苏教育学院附属高级中学 8南京市梅园中学 9南京航空航天大学附属高级中学 10南京市雨花台中学 11南京
  • python DVWA命令注入POC练习

    这里同样是抓包 访问DVWA低难度的命令注入
  • Spring的IOC加载流程

    Spring在配置IOC的时候有两种配置方式 一种是javaConfig的方式 一种是xml配置方式 那在配置完之后Spring是如何去解析的呢 本篇文章只讲解Spring如何解析javaConfig配置的 其实Spring在解析配置类的时
  • iOS接入IJKPlayer遇到的问题汇总

    这里有一个我自己编译的IJKMediaFramework 能解决目前Github上反馈很多常见的IJKPlayer使用问题 包含播放异常 UI主线程Crash等 替换自己项目中的IJKMediaFramework即可链接 https pan
  • Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图

    原文过于冗余 精读后做了部分简化与测试实践 原文地址 http www j2megame com html xwzx ty 2571 html 一个三维场景的画面的好坏 百分之四十取决于模型 百分之六十取决于贴图 可见贴图在画面中所占的重要
  • 群晖添加第三方社群套件源显示无效的位置解决方案

    群晖添加第三方社群套件源显示无效的位置解决方案 问题原因 安装直接报错显示无效的位置 无法安装 所以上网查了查 有很多人都出 这问题 出现问题的原因是在DSM6非最新版本的系统证书过期引起的相关问题 解决方案 1 打开群晖的SSH功能 并连
  • (附源码)计算机毕业设计ssm个性化旅游线路推荐系统

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • Ansible——简介Ansible

    一 什么是ansible 1 ansible 是一种开源自动化语言 用户可以通过它高效地自动化执行任务 通过自己的电脑自动化远程配置管理多台服务器 2 ansible用于批量配置管理 应用部署 安全和审计 工作流自动化和网络自动化 编排整个
  • 计算阶乘之和

    计算一下1 2 10 一个错误示范 代码如下 int main int i 0 int ret 1 int sum 0 for i 1 i lt 10 i int j 0 for j 1 j lt i j ret j sum ret pri
  • 2021.12.3-12.4--面试题

    请列举你所知道的Object类的方法并简要说明 Object 默认构造方法 clone 创建并返回此对象的一个副本 equals Object obj 指示某个其他对象是否与此对象 相等 finalize 当垃圾回收器确定不存在对该对象的更
  • “~i“在C语言的for循环中是什么意思

    最近看y总的视频 在他的代码里经常出现 1 比如 for int i h u i i ne i dfs e i depth 1 然后我就不解了 去百度了一通 百度说 在C语言里面是二进制取反的意思 我还是有点不解 然后自己写代码测试了一下