单目操作符

目录

! --- 逻辑反操作

& --- 取地址操作符

* --- 间接访问操作符(解引用操作符)

sizeof --- 操作数的类型长度(单位为字节)

~ --- 对一个数的补码二进制按位取反

前置++和前置--

后置++和后置--

(类型) --- 强制类型转换


! --- 逻辑反操作

把假变为真,把真变为假

代码演示:

#include<stdio.h>
int main()
{int flag = 0;if (flag)printf("execute flag\n");//逻辑反操作if (!flag)printf("execute !flag\n");return 0;
}

在C语言中,0为假,一切非0为真,所以将flag单独放在if判断语句内,是不会进入if语句中的,但是当前面加一个逻辑反操作,就会将假变为真,则会执行第二条if语句中的内容

代码验证:


& --- 取地址操作符

* --- 间接访问操作符(解引用操作符)

区分与按位与操作符,按位与操作符属于双目操作符

代码演示:

#include<stdio.h>
int main()
{int a = 10;printf("a原来的值 = %d\n", a);//取地址操作符取出a的地址,用同类型的指针变量接收int* pa = &a;//解引用操作符,将pa解引用,//通过pa存放的地址,找到指向的空间内容,并赋值为20//也就是将变量a的值重新赋值为20*pa = 20;printf("a通过指针变量改变的值 = %d\n", a);return 0;
}

代码验证:


sizeof --- 操作数的类型长度(单位为字节)

sizeof不是函数,是操作符

sizeof计算的是类型创建变量的大小,单位是字节

代码演示:

#include<stdio.h>
int main()
{int a = 10;printf("%d\n", sizeof(int));printf("%d\n", sizeof(a));printf("%d\n", sizeof a );return 0;
}

代码验证:

由最后一条代码可证明sizeof不是函数,因为可以把括号去掉,同样计算出a所占空间的字节,但函数不能去掉括号

sizeof和数组名的相关知识请见:对于数组名的理解-CSDN博客


~ --- 对一个数的补码二进制按位取反

代码演示:

#include<stdio.h>
int main()
{int a = 0;int b = ~a;printf("b = %d", b);return 0;
}

那么b的值为多少呢?

代码解析:

整数0存储在int类型变量a中的补码:

变量a按位取反后的补码:

存储至变量b中的原码:

由此可得b的值为-1

代码验证:


前置++和前置--

先++(或--),再使用

代码演示:

#include<stdio.h>
int main()
{int a = 1;int b = ++a;printf("a = %d; b = %d\n", a, b);return 0;
}

变量a先自增1,变为2,再赋值给变量b,所以打印出来a为2,b为2

代码验证:

前置--同理


后置++和后置--

先使用,后++(或--)

代码演示:

#include<stdio.h>
int main()
{int a = 1;int b = a++;printf("a = %d; b = %d\n", a, b);return 0;
}

先将a原来的值赋值给b,b就为1,赋值后a自增1,a就为2

代码验证:

后置--同理 


(类型) --- 强制类型转换

#include<stdio.h>
int main()
{int a = (int)3.14;printf("a = %d\n", a);//a = 3return 0;
}

将3.14这个小数强制类型转换为int类型,并且存储到变量a中,那么a的值就为3,直接舍去小数

常规用法:

 一般用于动态开辟内存时才强制类型转换为相对应的类型

#include<stdio.h>
#include<stdlib.h>int main()
{//开辟20个字节的动态空间int* ptr = (int*)malloc(sizeof(int) * 5);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

three.js场景三元素

three.js是一个基于WebGL的轻量级、易于使用的3D库。它极大地简化了WebGL的复杂细节&#xff0c;降低了学习成本&#xff0c;同时提高了性能。 three.js的三大核心元素&#xff1a; 场景&#xff08;Scene&#xff09; 场景是一个三维空间&#xff0c;是所有物品的容器。可以将…

安卓速度下载v1.0.5/聚合短视频解析下载

功能特色 短视频下载与高级管理 – 支持短视频下载&#xff0c;为您提供一系列高级视频管理功能包括视频内容提取、智能防重复技术、视频体积压缩以及视频转换成GIF图片等&#xff1b; 磁-力链接下载升级 – 现支持磁力链接下载&#xff0c;实现边下载边播放的便捷体验&#x…

构建基于LLMs混合型大模型的先进事实性问答系统架构

1.引言 传统搜索系统基于关键字匹配&#xff0c;缺少对用户问题理解和答案二次处理能力。本文探索使用大语言模型&#xff08;Large Language Model, LLM&#xff09;&#xff0c;通过其对自然语言理解&#xff08;Natural Language Understanding&#xff0c;NLU&#xff09;…

阿里云常用的操作

阿里云常见的产品和服务 容器服务 可以查看容器日志、监控容器cpu和内存&#xff0c; 日志服务 SLS 可以查看所有服务的日志&#xff0c; Web应用防火墙 WAF 可以查看 QPS. 阿里云查看集群&#xff1a; 点击 “产品和服务” 中的 容器服务&#xff0c;可以查看 集群列表&…

第五节:如何使用其他注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好&#xff0c;我是网创有方&#xff0c;上节我们实践了通过Bean方式声明Bean配置。咱们这节通过Component和ComponentScan方式实现一个同样功能。这节实现的效果是从IOC中加载Bean对象&#xff0c;并且将Bean的属性打印到控制台。 第一步&#xff1a;创建pojo实体类studen…

Android进阶之路 - DialogFragment有没有了解的必要?

几个月前写到了弹框业务&#xff0c;以前经常用Dialog、ButtomDialog 、popupWindow 组件&#xff0c;为了契合项目结构参考了原有的 DialogFragment 组件&#xff0c;特此予以记录 我一般在项目中写弹框组件的话&#xff0c;主要用到 alertDialog、popupWindow 组件&#xff0…

用GPT-4纠错GPT-4 OpenAI推出CriticGPT模型

根据OpenAI周四&#xff08;6月27日&#xff09;发布的新闻稿&#xff0c;该公司新推出了一个基于GPT-4的模型——CriticGPT&#xff0c;用于捕获ChatGPT代码输出中的错误。CriticGPT的作用相当于让人们用GPT-4来查找GPT-4的错误。该模型可以对ChatGPT响应结果做出批评评论&…

有没有能用蓝牙的游泳耳机,性能超凡的4大游泳耳机力荐

在现代科技的推动下&#xff0c;越来越多具备蓝牙功能的游泳耳机正在改变游泳爱好者的体验方式。这些创新产品不仅在防水性能上有了显著提升&#xff0c;还能让您在水中享受到高质量的音乐。然而&#xff0c;选择一款优秀的蓝牙游泳耳机并不简单&#xff0c;需要考虑到防水等级…

【秋招突围】2024届秋招笔试-科大笔试题-01-三语言题解(Java/Cpp/Python)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系计划跟新各公司春秋招的笔试题 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 &#x1f4d6…

基于SSM的大学生家教管理系统【附源码+LW】

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本大学生家教平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

c语言--指针

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理c语言中指针的相关知识点。 指针概念 指针存储的就是数据的地址。 直观理解: 李华家是北洋路130号1单元101 用变量处理数据: 我们去李华家拿数据。 用指针处理数据: 我们去北洋路130号1单元101拿数据…

Paragon NTFS与Tuxera NTFS有何区别 Mac NTFS 磁盘读写工具选哪个好

macOS系统虽然以稳定、安全系数高等优点著称&#xff0c;但因其封闭性&#xff0c;不能对NTFS格式磁盘写入数据常被人们诟病。优质的解决方案是使用磁盘管理软件Paragon NTFS for Mac&#xff08;点击获取激活码&#xff09;和Tuxera NTFS&#xff08;点击获取激活码&#xff0…

2024年科技型中小企业申报指南

01 什么是科技型中小企业 科技型中小企业是指依托一定数量的科技人员从事科学技术研究开发活动&#xff0c;取得自主知识产权并将其转化为高新技术产品或服务&#xff0c;从而实现可持续发展的中小企。 02 申请“科技型中小企业”的好处 一、政策扶持与优惠 1.税收减免&…

Vue2组件传值(通信)的方式

1.父传后代 ( 后代拿到了父的数据 ) 1. 父组件引入子组件&#xff0c;绑定数据 <List :str1‘str1’></List> 子组件通过props来接收props:{str1:{type:String,default:}}***这种方式父传子很方便&#xff0c;但是父传给孙子辈分的组件就很麻烦&#xff08;父》子…

《GPT模型揭秘:数据驱动AI的核心概念与GPT系列对比分析》

DS&#xff1a;《What Are the Data-Centric AI Concepts behind GPT Models?通过三个数据为中心的人工智能目标(训练数据开发、推理数据开发和数据维护)揭示GPT模型背后的数据为中心的人工智能概念》解读—GPT-1/GPT-2/GPT-3系列对比(语料大小参数量解码层数上下文长度隐藏层…

技术学习的奥秘与乐趣

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 在当今快速发展的科技时代&#xff0c;学习技术已经成为了许多人追求的重要目标之一。无论是为了个人发展&#…

并发编程基础概念

相关概念 并行 并行是指同一个时刻&#xff0c;多个任务同时进行。只有在多核CPU下才会发生。 并发 并发是指单个CPU在不同任务之间来换切换工作&#xff0c;但是同一时刻只有一个任务在工作。由于CPU的切换速度很快&#xff0c;给人的感受是多个任务在一起运行。 串行 串行…

Ansys Zemax|在设计抬头显示器(HUD)时需要使用哪些工具?

附件下载 联系工作人员获取附件 汽车抬头显示器或汽车平视显示器&#xff0c;也被称为HUD&#xff0c;是在汽车中显示数据的透明显示器&#xff0c;不需要用户低头就能看到他们需要的重要资讯。这个名字的由来是由于该技术能够让飞行员在头部“向上”并向前看的情况下查看信息…

RocketMQ快速入门:linux安装rocketmq并配置开机自启(十一)

目录 0. 引言1. 下载安装包1.1 高版本直接下载安装包1.2 下载源码包进行编译 2. namesrv和broker安装2.1 安装2.2 放开服务器端口2.3 测试 3. 配置开机自启3.1 配置namesrv开机自启3.2 配置broker开机自启 0. 引言 之前我们针对本机电脑安装rocketmq进行了讲解&#xff0c;同时…

Java--回顾方法的定义

1.修饰符 public 公共的 修饰String类型 2.返回类型 返回的值得类型 返回值为String&#xff08;字符串&#xff09;类型 3.break continue return的区别 break&#xff0c;结束整个循环 continue&#xff0c;结束本次循环 return&#xff0c;结束整…