C语言变量和数据类型的使用

文章目录

  • 前言
  • 一、将变量输出打印到控制台
    • 1.整形变量的输出
    • 2.浮点型变量的输出
      • 1.flaot的输出
      • 2.doble的输出
      • 3.float和double输出的区别
      • 4.%f,%10.2f......
  • 二、数据类型的大小
  • 总结


前言

上一篇文章我们学习了C语言变量和数据类型的基本概念那么今天我们就具体的来看看如何在代码中使用他们吧。

一、将变量输出打印到控制台

1.整形变量的输出

下面我们定义一个变量a,并赋值为5,然后使用printf将其打印输出到控制台。
代码:

#include <stdio.h>

int main(void)
{
	int a = 5;

	printf("a = %d\n", a);

	return 0;
}

实现:
在这里插入图片描述
其他的大家应该都不难理解。
我们主要来理解一下这个%d:
%d是C语言中的格式控制符,用于输出整型变量的值。在printf函数中,可以使用%d来格式化输出一个整型变量的值。
在上面的例子中%d用于格式化输出a的值,%d将会被替换为a的实际值,并输出到标准输出设备上。

这里将%d替换为5,所以最后输出结果就是a = 5了。

printf("a = %d\n", a);

%d可以用于控制输出的格式,例如控制输出的宽度、精度、填充字符等。可以使用%d的一些修饰符来实现这些功能,例如:

%10d:将输出的整数占据10个字符的宽度,不足部分用空格填充;

%-10d:将输出的整数占据10个字符的宽度,不足部分用空格填充,并且左对齐;

#include <stdio.h>

int main(void)
{
	int a = 5;

	printf("a = %d\n", a);//正常输出
	printf("a = %10d\n", a);//不足部分用空格填充
	printf("a = %-10d\n", a);//不足部分用空格填充,并且左对齐

	return 0;
}

根据代码和效果大家应该可以很清楚的知道这几个的具体区别了。
在这里插入图片描述

2.浮点型变量的输出

%f是C语言中的格式控制符,用于输出浮点型变量的值。在printf函数中,可以使用%f来格式化输出一个浮点型变量的值。

1.flaot的输出

代码:

#include <stdio.h>

int main(void)
{
	float a = 3.14;

	printf("a = %f\n", a);

	return 0;
}

实现:
在这里插入图片描述

2.doble的输出

代码:

#include <stdio.h>

int main(void)
{
	double b = 3.14;
	
	printf("b = %f\n", b);

	return 0;
}

效果:
在这里插入图片描述

3.float和double输出的区别

float和double都是C语言中的浮点型数据类型,但是它们在内存中占据的空间大小不同,float占4个字节,而double占8个字节。因此,double可以表示的数字范围比float更大,并且具有更高的精度。

在输出float和double类型的变量时,可以使用printf函数和相应的格式控制符来控制输出的方式。在printf函数中,%f和%lf分别用于输出float和double类型的变量。

代码:

#include <stdio.h>

int main(void)
{
	float f = 3.14159;
	double d = 3.14159265358979323846;
	printf("f = %f\n", f);
	printf("d = %lf\n", d);

	return 0;
}

效果:
在这里插入图片描述
从效果上来都只保留了小数点后6位但是你仔细观察输出的最后一位就会发现float输出的最后一位是0,而double输出的最后一位是3。
因为这个编译器默认只输出6位小数,所以我们就会得到上述结果了。

使用float类型的变量可以节省内存空间,但是可能会损失一些精度;而使用double类型的变量可以获得更高的精度,但是会占用更多的内存空间。在实际程序中,需要根据具体的需求和性能要求选择合适的数据类型。

4.%f,%10.2f…

%f可以用于控制输出的格式,例如控制输出的宽度、精度、填充字符等。可以使用%f的一些修饰符来实现这些功能,例如:

%10.2f:将输出的浮点数占据10个字符的宽度,保留2位小数,不足部分用空格填充;

%-10.2f:将输出的浮点数占据10个字符的宽度,保留2位小数,不足部分用空格填充,并且左对齐;

%010.2f:将输出的浮点数占据10个字符的宽度,保留2位小数,不足部分用0填充;

%.2f:将输出的浮点数保留2位小数;
等等。
总之,%f是C语言中的格式控制符,用于输出浮点型变量的值,并可以通过一些修饰符来控制输出的格式。在C语言中,格式控制符是非常重要的概念,它可以让程序输出更加灵活、美观。

#include <stdio.h>

int main(void)
{
	float a = 3.14;

	printf("a = %10.2f\n", a);
	printf("a = %.2f\n", a);
	printf("a = %-10.2f\n", a);
	printf("a = %010.2f\n", a);

	return 0;
}

效果:
在这里插入图片描述

二、数据类型的大小

在C语言中,不同的数据类型在内存中占据的空间大小是不同的,可以使用sizeof运算符来获取一个数据类型在内存中占据的字节数。下面是一些常见数据类型的大小:

char类型:1字节

short类型:2字节

int类型:4字节

long类型:4字节或8字节(根据编译器不同而不同)

float类型:4字节

double类型:8字节
这里我们只对short,int,float,double进行测试:

这里使用sizeof来获取数据类型所占空间的大小。

#include <stdio.h>

int main(void)
{
	int a = 10;
	double b = 3.14;
	float c = 3.1;
	short d = 4;


	printf("int size is %d\n", sizeof(int));
	printf("double size is %d\n", sizeof(double));
	printf("float size is %d\n", sizeof(float));
	printf("short size is %d\n", sizeof(short));

	return 0;
}

效果:
在这里插入图片描述
在程序中正确理解数据类型的大小非常重要,可以避免在内存分配、数据传输、类型转换等方面出现问题。由于不同数据类型的大小可能会有所不同,因此在开发程序时需要注意数据类型的选择和使用,以确保程序正确、高效地运行。

总结

在实际编程中大家根据数据类型所占内存大小和数据范围的大小来具体的选择使用哪个数据类型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

css实现文字大小自适应

在页面编写中经常会碰到页面自适应的问题&#xff0c;也就是页面内部的元素会随着窗口的放大缩小而放大缩小&#xff0c;box可以通过calc 百分比的形式做到页面自适应&#xff0c;但是box内的字体却无法做到这点&#xff0c;往往box自适应大小了&#xff0c;内部的字体还是原来…

selenium(5)-------自动化测试脚本(python)

1)alert框的处理 前提:我们是不可以通过控制台直接定位元素的方式去选中这个alert框的&#xff0c;例如说xpath直接进行定位元素 1)先获得弹框的操作句柄:alertdriver.switch_to.alert 2)再次调用accept方法进行关闭弹窗:alert.accept() from selenium import webdriver import…

强化学习分类与汇总介绍

1.强化学习&#xff08;Reinforcement Learning, RL&#xff09; 强化学习把学习看作试探评价过程&#xff0c;Agent选择一个动作用于环境&#xff0c;环境接受该动作后状态发生变化&#xff0c;同时产生一个强化信号(奖或惩)反馈给Agent&#xff0c;Agent根据强化信号和环境当…

【python刷题】leecode官方提示“->“,“:“这些符号是什么意思?什么是Type Hints?

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…

JavaSE基础总结

JDK与JRE JDK&#xff0c;全称Java Development Kit&#xff0c;Java开发工具包 JRE&#xff0c;全称Java Runntime Environment&#xff0c;Java运行环境 JDK包含后者JRE。 JDK也可以说是Java SDK&#xff08;Software Development kit&#xff0c;软件开发工具包&#xff09;…

JVM高频面试题

1、项目中什么情况下会内存溢出&#xff0c;怎么解决&#xff1f; &#xff08;1&#xff09;误用固定大小线程池导致内存溢出 Excutors.newFixedThreadPool内最大线程数是21亿(2) 误用带缓冲线程池导致内存溢出最大线程数是21亿(3)一次查询太多的数据&#xff0c;导致内存占用…

基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)

摘要&#xff1a;农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况&#xff0c;自动化标注、记录和保存病害位置和类型&#xff0c;辅助作物病害防治以增加产值。本文详细介绍基于YOLOv5深度学习模型的农作物叶片病害检测系统&#xff0c;在介绍算法原理的同时&#…

百度的文心一言 ,没有想像中那么差

robin 的演示 我们用 robin 的演示例子来对比一下 文心一言和 ChatGPT 的真实表现&#xff08;毕竟发布会上是录的&#xff09;。 注意&#xff0c;我使用的 GPT 版本是 4.0 文学创作 1 三体的作者是哪里人&#xff1f; 文心一言&#xff1a; ChatGPT&#xff1a; 嗯&a…

C++ STL:vector的使用方法及模拟实现

目录 一. vector概述 二. vector接口函数的使用方法和模拟实现 2.1 vector类模板的成员变量 2.2 构造函数的使用和模拟实现 2.2.1 构造函数的使用方法 2.2.2 构造函数的模拟实现 2.3 析构函数的模拟实现 2.4 赋值运算符重载函数的使用和模拟实现 2.4.1 函数的使用 2.…

MybatisPlus------MyBatisX插件:快速生成代码以及快速生成CRUD(十二)

MybatisPlus------MyBatisX插件&#xff08;十二&#xff09; MyBatisX插件是IDEA插件&#xff0c;如果想要使用它&#xff0c;那么首先需要在IDEA中进行安装。 安装插件 搜索"MyBatisX"&#xff0c;点击Install&#xff0c;之后重启IDEA即可。 插件基本用途&…

蓝桥杯嵌入式第四课--定时器

前言蓝桥杯对于定时器这部分的考察主要集中在定时器中断、PWM输出以及输入捕获三个方面&#xff0c;本节课着眼于应用&#xff0c;介绍一下定时器的使用。定时器中断一、基础概念对没接触过定时器的新手来说&#xff0c;如果想要快速上手定时器的使用&#xff0c;首先要先对定时…

Python每日一练(20230318)

目录 1. 排序链表 ★★ 2. 最长连续序列 ★★ 3. 扰乱字符串 ★★★ &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 排序链表 给你链表的头结点 head &#xff0c;请将其按 升序 …

卷积神经网络CNN识别MNIST数据集

这次我们将建立一个卷积神经网络&#xff0c;它可以把MNIST手写字符的识别准确率提升到99%&#xff0c;读者可能需要一些卷积神经网络的基础知识才能更好的理解本节的内容。 程序的开头是导入TensorFlow&#xff1a; import tensorflow as tf from tensorflow.examples.tutor…

C语言老题新解16-20 用命令行打印一些图案

文章目录11 打印字母C12 输出国际象棋棋盘。13 打印楼梯&#xff0c;同时在楼梯上方打印两个笑脸。14 输出9*9 口诀。15 有一道题要输出一个图形&#xff0c;然后Very Beautiful。11 打印字母C 11 用*号输出字母C的图案。 讲道理这绝对不该是个新人能整出来的活儿&#xff0c…

TCP/IP协议栈之数据包如何穿越各层协议(绝对干货)

所有互联网服务&#xff0c;均依赖于TCP/IP协议栈。懂得数据是如何在协议栈传输的&#xff0c;将会帮助你提升互联网程序的性能和解决TCP相关问题的能力。 我们讲述在Linux场景下数据包是如何在协议层传输的。 1、发送数据 应用层发送数据的过程大致如下&#xff1a; 我们把…

蓝桥杯嵌入式第五课--输入捕获

前言输入捕获的考题十分明确&#xff0c;就是测量输入脉冲波形的占空比和频率&#xff0c;对我们的板子而言&#xff0c;就是检测板载的两个信号发生器产生的信号&#xff1a;具体来说就是使用PA15和PB4来做输入捕获。输入捕获原理简介输入捕获能够对输入信号的上升沿和下降沿进…

WorkTool企微机器人接入智能问答

一、前言 最新版的企微机器人已经集成 Chat &#xff0c;无需开发可快速搭建智能对话机器人。 从官方介绍看目前集成版本使用模型为 3.5-turbo。 二、入门 创建 WorkTool 机器人 你可以通过这篇快速入门教程&#xff0c;来快速配置一个自己的企微机器人。 实现的流程如图&…

Windows与Linux端口占用、查看的方法总结

Windows与Linux端口占用、查看的方法总结 文章目录Windows与Linux端口占用、查看的方法总结一、Windows1.1Windows查看所有的端口1.2查询指定的端口占用1.3查询PID对应的进程1.4查杀死/结束/终止进程二、Linux2.1lsof命令2.2netstat命令一、Windows 1.1Windows查看所有的端口 …

基于GPT-4的免费代码生成工具

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

SpringCloud五大核心组件

Consul 等&#xff0c;提供了搭建分布式系统及微服务常用的工具&#xff0c;如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等&#xff0c;满足了构建微服务所需的所有解决方案。 服务发现——Netflix Eureka …