char类型怎么输入 c语言_C语言中的char

e9d9693fb7df56218f69fadfa4bb3b61.png

C语言中的char是用于声明单个字符的关键字。char关键字具有一些很奇怪的特点,但是想要了解这些奇怪的特点为什么会存在,我们就要先了解char关键字的原理。char关键字会在内存中找到一字节的空闲空间,并且在里面写入一个从0到255的整型(int)值。正是因为这个原因,我们在使用char的时候就会发现一些很奇怪的现象。大家请看这个例子:

#include 

大家运行一下这个程序就会发现,第一个printf函数输出了a和b,但第二个printf函数则输出了97和98。这里大家可能就要奇怪了,我明明声明的是两个字符,为什么第二个语句却输出了两个数字?我是用了假的char吗?事实上,这就恰好证明了char实际上是在内存里存储整型。也正是因为这个原因,我们在C语言中无法直接声明字符串,而是需要先创建一个char类型的数组,创建好之后,在向里面写入字符变量。接下来,我们再来看看char类型的溢出。大家可以看看这个例子:

#include <stdio.h>
void main(){char a = ' ';char a_plus_1 = a + 100;printf("%d, %d", a, a_plus_1);
}

如果大家运行一下,就会发现a的输出为34,34+100想必小学生都能很轻松的算出来,但是结果却不是我们想的那样,而是-124。这是因为char类型只使用了一字节的空间,因此能存储的数字范围很小。那么,溢出又是怎么一回事呢?让我们来看看:

假设有一条二进制消息,占用一字节空间,内容如下:

1 0 1 0 1 0 1 0

现在从右边写入一个比特位,内容为0。内容变为:

0 1 0 1 0 1 0 0

我们可以用一种相当形象的方式来理解溢出,即在一个台子上,放着许多物品,这些物品就是数据。这时候,右边突然挤过来别的什么东西,这是新的数据。这个数据被放到台子上之后,所有的数据都左移了一格,而最靠边的数据则被挤掉了,这就是为什么我们会看到32变成-124这样离谱的答案。

本人正在跟随B站上的C语言教程学习C语言,随后将会继续分享心得体会,欢迎多多指教。

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

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

相关文章

android webview网页显示不完整,【报Bug】webview页面内容显示不全

详细问题描述更新到2.6.0之后&#xff0c;进入webview页面&#xff0c;嵌入的html页面无法完全显示&#xff0c;部分内容被遮挡[内容]重现步骤[步骤]进入webview页面[结果]内容无法完全显示&#xff0c;部分内容被遮挡[期望]内容显示正常[如果语言难以表述清晰&#xff0c;拍一…

无法创建ole db取值函数。请查看列元数据是否有效_[C++ Primer plus 心得]3.处理数据...

本章内容包括&#xff1a;C变量的命名规则。C内置的整型----unsigned long、long、unsigned int、int、unsigned short、short、char、unsigned char、singed char 和boot。C11新增的整型&#xff1a;unsigned long long 和long long。表示各种整型的数字字面值(常量)使用const…

android+ios打印机,Android/iOS手机安装HP打印机的详细方法和操作步骤

如今人们越来越依赖手机&#xff0c;手机几乎成为了生活必需品&#xff0c;其功能越来越多&#xff0c;对其他电子设备的操控能力也越来越强&#xff0c;那么手机如何操控打印机呢?今天小编就跟大家分享一下手机是如何通过无线安装打印机的。备注&#xff1a;本文以Android系统…

微信 小程序 python 渲染_你用python写过那些好玩的微信小程序?

教你用Py来玩跳一跳小程序教程项目地址 2017 年 12 月 28 日下午&#xff0c;微信发布了 6.6.1 版本&#xff0c;加入了「小游戏」功能&#xff0c;并提供了官方 DEMO「跳一跳」。 这是一个 2.5D 插画风格的益智游戏&#xff0c;玩家可以通过按压屏幕时间的长短来控制这个「小人…

android log.d 参数,Android log 机制 - logd 总览

Android 早期版本使用的是一个 log 驱动&#xff0c;后来逐渐使用 logd 进程替代(具体哪个版本我就没有去探究了&#xff0c;至少在 Android 8.0 里&#xff0c;log 驱动已经被移除)。原有 log 驱动负责的功能&#xff0c;都由 logd 完成。此外&#xff0c;logd 还可以读取 Lin…

python的requests模块功能_【python】requests模块初探(一)

一、写在前面 Requests 是用Python语言编写&#xff0c;基于 urllib&#xff0c;采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便&#xff0c;可以节约我们大量的工作&#xff0c;完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的&…

麒麟980可以升级鸿蒙吗,这五部麒麟980手机确定能升鸿蒙OS,其中有你吗?

原标题&#xff1a;这五部麒麟980手机确定能升鸿蒙OS&#xff0c;其中有你吗&#xff1f;就在今年九月的华为开发者大会上&#xff0c;余承东“一不小心”吐露出EMUI 11明年能升级鸿蒙OS 2.0的事实&#xff0c;这让许多华为用户兴奋不已&#xff0c;但首先你的手机必须要先能升…

python没有指针如何实现链表_Java、Python中没有指针,怎么实现链表、图等数据结构?...

Java、Python中没有指针&#xff0c;怎么实现链表、图等数据结构&#xff1f; (2016-10-06 11:08:19) 分类&#xff1a; C 其实Java, python完全可以看成在语言层用语法糖隐藏了指针。JAVA中到处充满指针&#xff0c;只不过把C中的指针封装成了对象的引用了&#xff0c;引用就相…

android语言列表+波斯,Android 多语言入门及实战

右键res&#xff0c;选择 New Resource Directory ,选择 locale ,选择自己想要适配的语言类型设置应用内多语言Android 7.0以下/*** 设置多语言*/public void setConfiguration(LocaleList locales, Context context) {Configuration configuration context.getResources().ge…

python接入excel_通过Python导入Excel数据,实现自动化数据测试

一、安装openpyxl pip install openpyxl 二、获取Excel表格数据 以下是我的表格数据 #导入load_workbook工作表 from openpyxl import load_workbook #创建粘贴工作表数据的类 class ParseExcel(): #工作表路径及工作表的名字 def __init__(self,excelPath,sheetName): #加载表…

html长图转换成pdf,将长 html 导入拆分 PDF

我的情况是&#xff1a;单击按钮时&#xff0c;将 html 上的数据导入 PDF 文件。由于此 PDF 必须具有一些复杂的必需样式&#xff0c;因此我的第一步是使用 html2canvas.js 将此页面转换为图像&#xff0c;然后使用 jsPDF.js 将此图像导入 PDF当数据太大时&#xff0c;必须拆分…

python 魔法方法常用_python 常用的魔法方法

1. 构造方法 __new__(cls,[...) 对象实例化时第一个调用的方法&#xff0c;它只取下 cls 参数&#xff0c;并把其他参数传给 __init__ 。 __init__(self,[...]) 使用传入的参数来初始化实例&#xff0c;不能返回除了None的任何值。 __del__(self) 定义了当对象被垃圾回收时的行…

c# 从地址拷贝byte_面试必备的 “零拷贝” 问题!从头给你说!

本文作者&#xff1a;ksfzhaohui来源&#xff1a;juejin.im/post/5cad6f1ef265da039f0ef5df前言I/O概念1.缓冲区2.虚拟内存3.mmapwrite方式4.sendfile方式Java零拷贝1.MappedByteBuffer2.DirectByteBuffer3.Channel-to-Channel传输Netty零拷贝其他零拷贝总结前言从字面意思理解…

html css实现登录注册页面,基于HTML5+css+JS_的精美登陆注册界面

【实例简介】基于HTML5cssJS的精美登陆注册界面-------------------------------【实例截图】【核心代码】login4├── index.html├── resources│ ├── images│ │ ├── arrow.png│ │ ├── arrow-p.png│ │ ├── bg.png│ │ ├── btn.pn…

lda 可以处理中文_中文分词(jieba)和语料库制作(gensim)

本文的内容为以下两个部分&#xff1a;文本分词&#xff08;jieba&#xff09;语料库制作&#xff08;gensim&#xff09;结巴&#xff08;jieba&#xff09;分词在自然语言处理领域中&#xff0c;分词和提取关键词都是对文本处理时通常要进行的步骤。用Python语言对英文文本进…

js时间搓化为今天明天_秋冬国产搓背神器!360°无死角,让你搓背不求人,太舒服了...

秋冬国产搓背神器&#xff01;360无死角&#xff0c;让你搓背不求人&#xff0c;太舒服了&#xff01;夏季悄然离去&#xff0c;秋季快步走来&#xff0c;距离冬季也不远了~天气变冷以后&#xff0c;下班、放学回家了最惬意不过的就是洗个澡&#xff0c;如果泡完澡再搓个背&…

用html制作广告图片切换效果,基于jquery实现图片广告轮换效果代码

效果图:实现代码:hotmarquee*{margin: 0;padding: 0;}body{font: 12px;padding-top: 50px;padding-right: 200px;padding-bottom: 100px;padding-left: 200px;}ul{list-style: none;}img{padding: 2px;border: 1px solid #eee;}a{outline: none;}#imgs{width: 410px;margin-rig…

matplotlib柱状图上方显示数据_Python数据分析matplotlib可视化之绘图!

Matplotlib是一个基于python的2D画图库&#xff0c;能够用python脚本方便的画出折线图&#xff0c;直方图&#xff0c;功率谱图&#xff0c;散点图等常用图表&#xff0c;而且语法简单。Python中通过matplotlib模块的pyplot子库来完成绘图。Matplotlib可用于创建高质量的图表和…

应付账款账龄分析模板_企业财务报表分析论文应如何着手?

首先是企业的选择&#xff0c;最好选取上市公司进行分析&#xff0c;上市公司的财务数据比较透明&#xff0c;完全可以从新浪财经、中国证券网等平台获得详尽的报表数据资料&#xff0c;一般选取近三到五个年度。有了数据就可以着手分析了&#xff0c;我们可以从下面几个方法入…

dbeaver导入excel文件_PyQT5练习:制作Excel文件导入MySQL窗口

本文环境配置&#xff1a;系统>windows10&#xff1a;64位工具>PyCharm&#xff1a;2018.3.1语言>Python&#xff1a;3.7.1第三方库PyQT5&#xff1a;5.11.3pyqt5-tools&#xff1a;5.11.3.1.4PyMySQL&#xff1a;0.9.3openpyxl&#xff1a;2.5.12练手&#xff1a;制作…