C语言深度解剖-关键字(5)

news2025/1/16 0:57:09

目录

if else 组合

if else 的基本用法

注释

深入理解bool

float(double)与浮点数的比较

写在最后:


if else 组合

if else 的基本用法

#include <stdio.h>

int main()
{
	int flag = 1;
	if (flag == 1)
	{
		printf("flag = %d\n", flag);
	}
	else if (flag == 2)
	{
		printf("flag = %d\n", flag);
	}
	else
	{
		printf("flag = %d\n", flag);
	}
	return 0;
}

输出:

输出:flag = 1

当flag等于1的时候,打印的就是flag = 1;

当flag等于2的时候,打印的就是flag = 2;

当flag不等于1和2的时候,打印的就是flag 对应的值;

这就是if else 语句。

注释

我们平时用的注释方法:

//#include <stdio.h>
//
//int main()
//{
//	int flag = 1;
//	if (flag == 1)
//	{
//		printf("flag = %d", flag);
//	}
//	else if (flag == 2)
//	{
//		printf("flag = %d", flag);
//	}
//	else
//	{
//		printf("flag = %d", flag);
//	}
//	return 0;
//}

又或者是:

/*
#include <stdio.h>

int main()
{
	int flag = 1;
	if (flag == 1)
	{
		printf("flag = %d", flag);
	}
	else if (flag == 2)
	{
		printf("flag = %d", flag);
	}
	else
	{
		printf("flag = %d", flag);
	}
	return 0;
}
*/

其实,用if 语句也能巧妙的注释:

#include <stdio.h>

int main()
{
	if (0)
	{
		int flag = 1;
		if (flag == 1)
		{
			printf("flag = %d", flag);
		}
		else if (flag == 2)
		{
			printf("flag = %d", flag);
		}
		else
		{
			printf("flag = %d", flag);
		}
	}

	return 0;
}

当然,这种方式并不推荐。(容易出问题)

深入理解bool

C语言有没有bool类型?

c99之前,主要是c90没有, 但是c99引入了_Bool类型。

_Bool是一个类型,在新增头文件stdbool.h中,为了保证C/C++兼容性,被重新用宏写成了 bool。

例:

#include <stdio.h>
#include <stdbool.h> 

int main()
{
	bool ret = false;
	ret = true;
	printf("%d\n", sizeof(ret)); //vs2019 和 Linux中都是1
                                 //也就是占用了一个字节
	return 0;
}

我们通过查看源码深入了解一下bool。

在包含头文件<stdbool.h>后,就能使用bool,

false 表示假。

true 表示真。

float(double)与浮点数的比较

例:

#include <stdio.h>

int main()
{
	double x = 1.0;
	double y = 0.1;
	if ((x - 0.9) == 0.1)
	{
		printf("(x - 0.9) = 0.1\n");
	}
	else
	{
		printf("(x - 0.9) != 0.1\n");
		printf("%.50lf\n", x - 0.9);
		printf("%.50lf\n", 0.1);
	}
	return 0;
}

输出:

输出:
(x - 0.9) != 0.1
0.09999999999999997779553950749686919152736663818359
0.10000000000000000555111512312578270211815834045410

总结:浮点数存在精度丢失,是不能直接比较的。

我们可以通过C语言提供的最小精度,达成我们比较的目的:

例:

#include <stdio.h>
#include <float.h>//提供最小精度值:DBL_EPSILON

int main()
{
	double x = 1.0;
	double y = 0.1;
	//if ((x - 0.9) == y)
	if ((x - 0.9 - y) < DBL_EPSILON)//如果成立,则(x - 0.9) = y
	{
		printf("(x - 0.9) = y\n");
	}
	else
	{
		printf("(x - 0.9) != 0.1\n");
		printf("%.50lf\n", x - 0.9);
		printf("%.50lf\n", 0.1);
	}
	return 0;
}

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

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

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

相关文章

crmeb pro多门店版二次开发

重启一下swool 新创建的数据库表 ALTER TABLE eb_store_cart ADD price DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT 单独改价 AFTER status;ALTER TABLE eb_store_order ADD car_no VARCHAR(255) NOT NULL DEFAULT COMMENT 车牌号 AFTER erp_order_id, ADD frame_no VARCHA…

2023软考系统集成项目管理工程师易混淆知识点~(7)

将2023上半年软考《系统集成项目管理工程师》易混淆知识点&#xff0c;分享给大家&#xff0c;快来跟着一起打卡学习吧&#xff01;概念辨析 1:项目、运营概念:(1)项目:项目是为达到特定目的&#xff0c;使用一定资源&#xff0c;在确定的期间内&#xff0c;为特定发起人而提供…

Linux perf的使用(一)

文章目录前言一、perf简介二、perf子命令简介三、perf工作模式3.1 计数3.2 采样参考资料前言 系统级性能优化通常包括两个阶段&#xff1a;性能剖析&#xff08;performance profiling&#xff09;和代码优化。 &#xff08;1&#xff09;性能剖析的目标是寻找性能瓶颈&#x…

python(13)--字典(Dict)

一、字典的基本操作 1.定义字典 字典也是一个列表型的数据结构&#xff0c;字典的数据是用“{ }”装的&#xff08;列表&#xff1a;[ ]&#xff0c;元组&#xff1a;( )&#xff09;&#xff0c;字典的元素是一一对应的关系“key-value”。 格式&#xff1a; Dictname{ key1…

vue中父子组件的传值

1. 父组件给子组件传值 主要两个步骤&#xff1a; 1. 在父组件调用子组件的时候绑定数据 2. 在子组件里面通过props接收父组件传过来的数据 2. 子组件给父组件传值 主要三个步骤&#xff1a; 1.在子组件中创建一个按钮&#xff0c;给按钮绑定一个点击事件 2.在响应该点击事件…

NSSRound#7

[NSSRound#7 Team]ec_RCE 源码: <?PHPif(!isset($_POST["action"]) && !isset($_POST["data"]))show_source(__FILE__);putenv(LANGzh_TW.utf8); $action $_POST["action"];$data "".$_POST["data"]."…

Java综合实验1题目: 猜心术---猜姓氏游戏

一、 实验内容及要求 假设游戏者共有十人&#xff0c;且有10个不同的姓&#xff1a;张、王、李、赵、刘、于、许、金、钱、孙&#xff0c;魔术师将十个姓写在四张纸牌上&#xff0c;游戏者只需指出那几张纸上有自己的姓&#xff0c;魔术师就能准确的说出游戏者的姓&#xff0c…

ChatGPT 为我制作了一张地图

有人说&#xff1a;一个人从1岁活到80岁很平凡&#xff0c;但如果从80岁倒着活&#xff0c;那么一半以上的人都可能不凡。 生活没有捷径&#xff0c;我们踩过的坑都成为了生活的经验&#xff0c;这些经验越早知道&#xff0c;你要走的弯路就会越少。 今天在刷视频的时候看到了…

Java 并发在项目中的使用场景

1、并发编程的三个核心问题&#xff1a;&#xff08;1&#xff09;分工&#xff1a;所谓分工指的是如何高效地拆解任务并分配给线程&#xff08;2&#xff09;同步&#xff1a;而同步指的是线程之间如何协作&#xff08;3&#xff09;互斥&#xff1a;互斥则是保证同一时刻只允…

本科大数据专业能找到大数据开发的工作么

本科大数据专业能不能找到大数据开发的工作取决于你在校期间大数据学科学习的怎么样~ 目前大二就还有时间去学习&#xff0c;趁着空余时间找个完整的学习路线去学习&#xff0c;争取能够在校招的时候就找到心仪的工作技术过关的话是完全没有问题的&#xff0c;而且加上你还有兴…

PythonWeb开发基础(三)类Flask框架请求封装

课程地址&#xff1a;Python 工程师进阶技术图谱 文章目录类Flask框架请求封装HTTP请求解析的python实现1、解析查询字符串2、多值问题使用webob库解析请求Bug记录bug&#xff1a;AttributeError: module cgi has no attribute parse_qs类Flask框架请求封装 Web服务器 本质是…

【C++提高编程】list 容器详解(附测试用例与结果图)

目录1. list容器1.1 list基本概念1.2 list构造函数&#xff08;初始化&#xff09;1.3 list 赋值和交换1.4 list 大小操作1.5 list 插入和删除1.6 list 数据存取1.7 list 反转&#xff08;reverse&#xff09;、排序&#xff08;sort&#xff09;和去重&#xff08;unique&…

电脑技巧:电脑状态监控神器TrafficMonitor介绍

有的时候我们为了解决某些电脑问题&#xff0c;需要监控电脑的实时网速、CPU、内存等的占用情况。一般情况下我们可以打开电脑任务管理器&#xff0c;就可以实时监控硬件状态&#xff0c;但如果查看频率较高的话&#xff0c;需要每次进入任务管理器就显得比较麻烦。今天小编分享…

【漏洞修复】 CVE Linux 系统应用漏洞修复笔记

这里写自定义目录标题说明SSL/TLS协议信息泄露漏洞(CVE-2016-2183)漏洞信息解决办法验证方法修复步骤说明查询当前使用的openssl版本号下载并安装新版本的openssl替换nginx中使用的openssl到最新版说明 此文章主要记录工作中遇到的漏洞以及修复过程。 SSL/TLS协议信息泄露漏洞…

【LeetCode】员工的重要性 | 图像渲染 | 岛屿问题

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《阿亮爱刷题》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;员工的重…

力扣SQL刷题4

目录1158. 市场分析 I1280. 学生们参加各科测试的次数1174. 即时食物配送 II585. 2016年的投资1158. 市场分析 I 题型&#xff1a;表1和表2连接时&#xff0c;如何把没有对应数据输出来。即表1中所有id列对应的表2数据输出&#xff0c;没用的输出0 解答1&#xff1a;left join…

【Linux】权限

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️小林爱敲代码       &#x1f6f0;️博客专栏&#xff1a;Linux之路       &#x1f6f0;️社区&#xff1a; 进步学堂       …

关于软考的一些前期准备

国家软考的中级职称证书&#xff0c;含金量较高且没有报考资质限制 报名时间和考试时间具体请看官网&#xff1a;中国计算机技术职业资格网 不同的资格证书时间和要求不一样&#xff0c;注意查看 上半年&#xff1a; 下半年&#xff1a; 下半年&#xff1a; 软件评测师考试说…

Spring Boot 中事半功倍的一些工具类

系列文章地址&#xff1a;https://blog.csdn.net/perfect2011/article/details/124603278在日常开发中经常有这样那样的小功能需要实现&#xff0c;这些一般会作为工具类存在&#xff0c;在项目中有一些通用的功能&#xff0c;Spring内置了需要工具类&#xff0c;而且经过了大量…

京东一面:20种异步,你知道几种? 含协程

背景说明&#xff1a; 异步&#xff0c;作为性能调优核心方式之一&#xff0c;经常被用于各种高并发场景。 很多场景多会使用到异步&#xff0c;比如&#xff1a; 场景1&#xff1a; 超高并发 批量 写 mysql 、批量写 elasticSearch 场景2&#xff1a; 超高并发 批量 IO 场景…