C语言第二周课

news2024/9/21 12:31:36

目录

引言:

一、数据类型大小及分类

(1)计算机中常用存储单位

(2)整体介绍一下C语言的数据类型分类。

(3)下面是我们本节课要学的基本内容----常用的数据类型

二、 数据类型的数值范围

三、打印输出类型

数据类型打印示例:


引言:

我们常常在写C语言程序时,总离不开去定义变量。也许需要定义一个整形的,又或是定义一个浮点型的.....那么这时候就需要数据类型啦!又或许你常常因为没有使用合适正确的数据类型造成运行结果溢出等等一些问题。关于常见的一些数据类型(int,char...)大家可能都知道,那么他们的大小、数值范围是多少呢,我们该怎么去具体选择呢,一起来了解一下吧!

一、数据类型大小及分类

(1)计算机中常用存储单位

(2)整体介绍一下C语言的数据类型分类。

1.基本类型:
(1)整型类型。整型类型包含:基本整型(int)、短整型(short int)、长整型(long int)、双长整型(long long int)、字符型(char)和布尔型(bool)。
注:整型数据可在类型符号前面加修饰符:signed(有符号整数类型)和unsigned(无符号整数类型),若不指定则默认为“有符号类型”。
(2)浮点类型。浮点类型包含:单精度浮点型(float)、双精度浮点型(double)和复数浮点型(单精度复数浮点型(float_complex)、双精度复数浮点型(double_complex)和长精度复数浮点型(long long_complex))。
2.枚举类型:
(1)枚举类型。枚举类型就只有枚举类型(enum)。
3.空类型:
(1)空类型。空类型就只有空类型(void)。
4.派生类型:
(1)派生类型。派生类型包含:指针类型(*)、数组类型([])、结构体类型(struct)、共用体类型(union)和函数类型。

(3)下面是我们本节课要学的基本内容----常用的数据类型

​这里只介绍了除了enum(枚举类型)之外的基本数据类型,
//其实数据类型还包括构造类型,指针类型...
其中基本类型也分为数值类型(整型,浮点型),字符类型和枚举类型
数据类型主要决定了数据所占内存空间的大小以及数据的范围
char          //字符数据类型
short         //短整型
int           //整型
long          //长整型
float         //单精度浮点型
double        //双精度浮点型
 
​

数据类型主要决定了数据所占内存空间的大小。那么,请问你还记得上述基本数据类型所占的字节数吗?(你知道sizeof的用法吗,sizeof(被测数据),返回一个整数,单位是字节)

#include <stdio.h>
int main()
{
	printf("short:%d\n",sizeof(short));
	printf("unsgned short:%d\n", sizeof(unsigned short));
	printf("int:%d\n", sizeof(int));
	printf("unsigned int:%d\n", sizeof(unsigned int));
	printf("long:%d\n", sizeof(long));
	printf("unsigned long:%d\n", sizeof(unsigned long));
	printf("float:%d\n", sizeof(float));
	printf("double:%d\n", sizeof(double));
	printf("char:%d\n", sizeof(char));
 
	return 0;
}

注:unsigned是一个类型修饰符,用于声明无符号的整型变量。无符号整型变量只能存储非负值(即零和正数),因为它们的位模式被解释为仅表示正值。通俗来讲就是绝对值

由运行结果可知:

char类型的数据类型大小为1字节即8位。

short类型的数据类型大小为2字节即16位。

int类型、long类型、float类型的数据类型大小为4字节即32位。

long long类型、double类型的数据类型大小为8字节即64位。

注意,若整数数据类型前面加unsigned即为无符号整数数据类型,数据类型大小不变。

二、 数据类型的数值范围

三、打印输出类型

数据类型打印示例:

#include <stdio.h> 
int main()
{
    char ch='a';//字符用单引号,字符串用双引号
    printf("ch为 %c\n",ch);//"\n"是换行的意思
	printf("ch为 %d\n",ch);//打印'a'的ASCII码

    int a=15,b=16;
    printf("a为 %d\n",a);
    printf("a为 %d\n",b);

    long k=124323;
    printf("k为 %ld\n",k);

    double c=12.22;
    printf("c为 %lf\n",c);

    float c1=12.22;
    printf("c1为 %f\n",c1);//%f和%lf输出的数都是小数点后保留6位小数

	return 0;
}

输出结果:

问题来了,怎么让double类型和float类型保留后面两位小数呢?

//在%后面加上'.3'即保留小数点后3为
double c=12.22;
printf("c为 %.3f\n",c);

float c1=12.22;
printf("c1为 %.2f\n",c1);

 结果为:

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

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

相关文章

用AI操作电脑:使用PyQt和Python结合AI生成代码的实用指南

​ 在github上有这样一个名字叫做open-interpreter的项目&#xff0c;收获了52k个Star。该项目通过自然语言来控制电脑&#xff0c;极大简化了使用电脑的难度&#xff0c;提高了工作效率。受该项目启发&#xff0c;我们可以做一个中文版桌面AI助手。 分步思考&#xff1a; 自…

算法工程师转行大模型:时代的选择or个人的选择

算法工程师的黄金时代&#xff1a;大模型转行之路 随着人工智能技术的飞速发展&#xff0c;尤其是深度学习领域的大规模预训练模型&#xff08;大模型&#xff09;的兴起&#xff0c;算法工程师们正面临前所未有的机遇与挑战。本文旨在探讨算法工程师如何顺利过渡到大模型领域…

基于Matlab的图像去雾系统(四种方法)关于图像去雾的基本算法代码的集合,方法包括局部直方图均衡法、全部直方图均衡法、暗通道先验法、Retinex增强。

基于Matlab的图像去雾系统&#xff08;四种方法&#xff09; 关于图像去雾的基本算法代码的集合&#xff0c;方法包括局部直方图均衡法、全部直方图均衡法、暗通道先验法、Retinex增强。 所有代码整合到App designer编写的GUI界面中&#xff0c;包括导入图片&#xff0c;保存处…

吴恩达发布企业AI转型手册,AI Transformation Playbook,对公司高管、正在创业的AIer是不错的指南。

AI 时代&#xff0c;人人都在创业。 今天看到一篇吴恩达发布的 AI 转型指南&#xff0c;原文《 AI Transformation Playbook——How to lead your company into the AI era》。 对公司高管、正在创业的 AIer 是个不错的指南。 这本人工智能转型手册借鉴了领导谷歌大脑团队和百…

浅谈OLTP 与 OLAP 数据建模的差异

OLTP 与 OLAP&#xff1a;常见工作流 联机分析处理 (OLAP) 和联机事务处理 (OLTP) 是两种主要的数据处理系统。两者之间存在多种差异。 OLTP 系统旨在处理来自多个用户的多个事务&#xff0c;它们通常用于许多应用程序的后端。例如&#xff0c;在线商务网站将使用 OLTP 系统来…

chapter13-常用类——(Arrays)——day16

目录 481-Arrays排序源码解读 483-Arrays模拟排序 484-Arrays其他方法 485-Arrays课堂练习 481-Arrays排序源码解读 接口编程-compare 483-Arrays模拟排序 484-Arrays其他方法 二分搜索查找要求有序&#xff0c;如果数组中不存在这个元素&#xff0c;返回-&#xff08;low1&…

Sentence-BERT实现文本匹配【CoSENT损失】

引言 还是基于Sentence-BERT架构&#xff0c;或者说Bi-Encoder架构&#xff0c;但是本文使用的是苏神提出的CoSENT损失函数1。 点击来都是缘分&#xff0c;之前过时的方法可以不细看&#xff0c;别的文章可以不收藏&#xff0c;现在是最流行的方法&#xff0c;这篇文章建议收藏…

ASIO网络调试助手之一:简介

多年前&#xff0c;写过几篇《Boost.Asio C网络编程》的学习文章&#xff0c;一直没机会实践。最近项目中用到了Asio&#xff0c;于是抽空写了个网络调试助手。 开发环境&#xff1a; Win10 Qt5.12.6 Asio(standalone) spdlog 支持协议&#xff1a; UDP TCP Client TCP Ser…

利用高德+ArcGIS优雅获取任何感兴趣的矢量边界

荷花十里&#xff0c;清风鉴水&#xff0c;明月天衣。 四时之景不同&#xff0c;乐亦无穷尽也。今天呢&#xff0c;梧桐君给大家讲解一下&#xff0c;如何利用高德地图&#xff0c;随机所欲的获取shp边界数据。 文章主要分成以下几个步骤&#xff1a; 首先搜索你想获取的矢量…

深度学习中常见的损失函数

关注B站可以观看更多实战教学视频&#xff1a;hallo128的个人空间 深度学习中常见的损失函数 损失函数的作用 损失函数是衡量神经网络输出与真实标签之间差距的指标。在训练过程中&#xff0c;神经网络的目标是最小化损失函数的值。常见的损失函数包括均方误差&#xff08;MS…

HCIA--实验十二:交换机TRUNK接口实验

两个交换机TRUNK接口实验 一、实验内容 1.需求/要求&#xff1a; 通过两台交换机和四台主机连通&#xff0c;划分两个VLAN&#xff0c;实现同VLAN间通信。理解access接口和trunk接口的区别&#xff0c;熟记access和trunk的配置命令。 二、实验过程 1.拓扑图&#xff1a; 2…

从0开始深入理解并发、线程与等待通知机制

1、 从0开始深入理解并发、线程与等待通知机制 从上面两大互联网公司的招聘需求可以看到&#xff0c;大厂的Java岗的并发编程能力属于标配。 而在非大厂的公司&#xff0c;并发编程能力也是面试的极大加分项&#xff0c;而工作时善用并发编程则可以极大提升程序员在公司的技术…

Gray_opening和gray_closing 你用吗?

一张图&#xff0c;来自南京信息工程大学的视频课程 #1&#xff0c;复习一下各种图像处理神器&#xff0c; 取最小值&#xff0c;取最大值&#xff0c;取中间值&#xff0c;取均值&#xff0c;取高斯值&#xff0c;还有双边滤波&#xff0c;丰富对图像的处理 #2&#xff0c;…

不正确使用 public、private、protected,导致封装性差或无法访问

在Java学习中&#xff0c;封装&#xff08;Encapsulation&#xff09;是面向对象编程的重要特性之一。它通过隐藏对象的内部细节&#xff0c;并通过公开的接口与外界交互&#xff0c;从而提高代码的安全性、可维护性和模块化。 然而&#xff0c;如果不正确地使用访问修饰符&am…

ROS2图形化方式新建功能包工具- Turtle Nest

提示&#xff1a;全文AI生成。 链接&#xff1a; https://github.com/Jannkar/turtle_nest 配置 Turtle Nest 使用说明&#xff08;中文版&#xff09; 一、Turtle Nest 简介 正如海龟巢是幼海龟的诞生地&#xff0c;ROS 2 Turtle Nest 是 ROS 2 包的诞生和成长之地。Turtl…

JavaEE:多线程进阶(线程安全的集合类)

文章目录 线程安全的集合类多线程环境使用ArrayList多线程环境使用队列多线程环境使用哈希表HashtableConcurrentHashMap 线程安全的集合类 之前学习的集合类大部分都不是线程安全的. 比如ArrayList,Queue,HashMap等等,这都是线程不安全的. Vector,Stack,Hashtable,这些集合类…

使用Git进行版本控制:前端开发者的最佳实践

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介使用Git进行版本控制&#xff1a;前端开发者的最佳实践1. 引言2. Git的基本概念2.1 版本控制系统的作用2.2 Git 的基本操作 3. Git最佳实践3.1 使用有意义的提交信息3.2 小步提交&#xff0c;频繁提交3.3 使用分支进行开发3.4 代码…

SparkSQL SET和RESET

前言 我们在用代码写spark程序的时候,如果要设置一些配置参数,可以通过: SparkConf val conf = new SparkConf().setMaster("local[2]").setAppName("CountingSheep") val sc = new SparkContext(conf)spark-submit ./bin/spark-submit --name "M…

一个vue前端的例子(六)如何获取table一行的id

比如我们要删除列表一行 vue中template中的scope到底是个什么&#xff1f;_vue template scope-CSDN博客 <el-button click"edit_tool(scope.$index)" type"warning" icon"el-icon-edit">编辑</el-button> 获取列表下标

报错module ‘markdown‘ has no attribute ‘version‘解决方法

问题&#xff1a; 在配置环境时&#xff0c;遇到报错 module markdown has no attribute version 解决方法&#xff1a; 1.打开报错目录下的文件compat.py 2.将 markdown.version 更改为 markdown.__version__ (注意是双下划线&#xff09;