C语言字符常量与字符变量..

1.字符常量

诸如’a’、‘b’、'c’这类的都归属于字符常量
而且我们都知道printf()函数接收的第一个参数是字符串 所以不能够直接将字符常量作为printf函数的第一个参数
并且字符常量对应的占位符为%c

以下是对字符常量的演示

int main(){printf("%c%c%c%c", 'a', 'b', 'c', '\n');return 0;
}

2.字符类型占用的字节大小

1.字符常量占用的字节大小

在C语言中 对字符常量使用sizeof 那么字符类型会自动提升为int类型 那么检测的就是int类型的字节大小

int main(){printf("%zu\n", sizeof('a'));// 4return 0;
}

但是在C++中 打印的结果是1 也就是能够正确打印出char类型所占用的字节大小
本质上就是如果采用了C++编译器的话(visual studio文件的后缀名为cpp) 那么就可以正确获取结果
如果采用的是C编译器的话(visual studio文件的后缀名为c) 那么打印的就是int类型所占用的字节大小

2.字符变量占用的字节大小

那么如果检测的对象变成了字符变量的话 那么就可以正确获取字符类型占用的字节大小

int main(){char ch = 'a';printf("%zu\n", sizeof(ch));// 1return 0;
}

3.整数与字符的对应关系–ASCII

如果我们将前面打印字符的占位符换成%d的话 那么结果会是什么呢

int main(){printf("%d %d %d\n", 'a', 'b', 'c');// 97 98 99return 0;
}

可以发现 结果是一堆整数
其实这些整数就是ASCII码表中所打印字符对应的十进制数值 也是储存在计算机中的字节

打印的结果是字符还是ASCII码表中字符对应的数值 取决于占位符是%d还是%c

4.字符串常量

诸如"HelloWorld"之类的称之为字符串常量

int main(){printf("%zu\n", sizeof("HelloWorld"));// 11return 0;
}

可以看到 打印的结果是为11 比HelloWorld这个字符串常量的长度多1 那么多出来的1如何解释呢
原来在C语言中 字符串结尾会有一个数值0以标志字符串的结束

1.字符0和数值0

在这边特意讲一下的目的是为了区分他们两个 字符0对应的数值是48 和数值0的差别还是很大的

int main(){printf("%d %d\n", 0, '0');// 0 48return 0;
}

5.转义字符

int main(){printf("Hello\0World");return 0;
}

结果只打印了Hello 因为他认为这个字符串到\0就结束了 事实也是如此 我们前面说过了字符串是以数值0作为结尾的 那么’\0’和0肯定是由什么联系的

诸如’\数值’之类称为转义字符 该数值为八进制形式
那么前面所讲的’\0’其实就是一个转义字符 他在ASCII码表中对应的就是数值0 两者是等价的关系

既然我们已经知道转义字符的格式是’\八进制数值’ 那么我们可以尝试一下通过转义字符打印"Hello"这个字符串

int main(){printf("\110\145\154\154\157\n");// Helloreturn 0;
}

可以看出 Hello被我们正确打印出来了

但是我们平常见到过换行符是以’\n’的形式存在的 这又是为什么?
其实就是因为数值格式存在的转义字符比较难以记忆 所以就通过一些字母进行替代 方便记忆

int main(){printf("\12\n");// 打印了两个换行return 0;
}

可以看到\12和\n的效果是一样的 都展示了换行的效果

以下是一些常见的字母格式的转义字符
在这里插入图片描述
在这里插入图片描述
有一些字符无法在键盘上体现 这被称为不可见字符 在ASCII码表中体现为前32个字符(数值0-31)
在这些不可见字符中 不是全部都有字母格式的转义字符 有些需要查表获取八进制数值以表示转义字符

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

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

相关文章

第一篇【传奇开心果微博文系列】Python微项目技术点案例示例:pillow库实现毛笔字春联

传奇开心果微博文系列 系列微博文目录Python微项目技术点案例示例系列 微博文目录一、微项目目标二、实现微项目编程思路三、初步实现目标示例代码四、添加背景色、边框、阴影效果示例代码五、添加花纹背景、装饰线条示例代码六、添加花朵、插图等示例代码 系列微博文目录 Pyt…

Go语言每日一练——链表篇(八)

传送门 牛客面试笔试必刷101题 ----------------两个链表的第一个公共结点 题目以及解析 题目 解题代码及解析 解析 这一道题使用的还是双指针算法,我们先求出两个链表的长度差n,然后定义快慢指针,让快指针先走n步,最后快慢指…

【Linux】学习-进程信号

进程信号 信号入门 生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”,也就是你意识里是知道如果这时候快递员送来了你的包裹,你知道该如何处理这些包裹当快递员到了你…

Javaweb之SpringBootWeb案例之事务管理的详细解析

1. 事务管理 1.1 事务回顾 在数据库阶段我们已学习过事务了,我们讲到: 事务是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体,一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功&am…

区间dp 笔记

区间dp一般是先枚举区间长度,再枚举左端点,再枚举分界点,时间复杂度为 环形石子合并 将 n 堆石子绕圆形操场排放,现要将石子有序地合并成一堆。 规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该…

中创ET4410 台式LCR数字电桥 简单开箱测评

最近买了一台LCR电桥,完善一下自己实验室的设备,选了中创ET4410,这款性价比高一点。 1199元在PDD买的,好像胜利的VC4090C也是找中创代工的。 ET4410介绍 本系列LCR数字电桥是采用自动平衡电桥原理设计的元件参数分析仪&#xf…

JavaScript的聚焦:focus/blur

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ​ ✨ 正文 一、简介 focus 和 blur 事件是 HTML 元素的重要事件&#xff…

【大厂AI课学习笔记】【1.6 人工智能基础知识】(2)机器学习

目录 必须理解的知识点: 举一个草莓的例子: 机器学习的三个类别: 监督学习: 无监督学习: 强化学习: 更多知识背景: 机器学习的诞生需求 监督学习的关键技术与实现步骤 无监督学习的关…

AI-数学-高中-25-三角函数一三角函数对称性

原作者视频:【三角函数】【考点精华】3三角函数对称性(重要)(中档)_哔哩哔哩_bilibili 1.一个对称点\直线思路: 2.关于两点或两直线对称: 3.两个对称:一个关于点对称、一个关于直线…

剑指offer——替换空格

目录 1. 题目描述与背景1.1 题目描述1.2 背景 2. 一般思路 (时间复杂度为O(n))3. 分析4. 完整代码4.1 标准答案 1. 题目描述与背景 1.1 题目描述 请实现一个函数,把字符串中的每个空格替换成 “ %20 ” 。例如:输入“ we are hap…

C#计算矩形面积:通过定义结构 vs 通过继承类

目录 一、涉及到的知识点 1、结构 2.结构和类的区别 3.继承 4.使用类继承提高程序的开发效率 二、实例:通过定义结构计算矩形面积 1.源码 2.生成效果 三、实例:通过继承类计算梯形面积 1.源码 2.生成效果 一、涉及到的知识点 1、结构 结构是…

我主编的电子技术实验手册(04)——电压的测量与接地

本专栏是笔者主编教材(图0所示)的电子版,依托简易的元器件和仪表安排了30多个实验,主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】,精心设计的【实验步骤】,全面丰富的【思考习…

linux学习之虚拟地址

在以往的学习中我们经常接触地址,电脑像一个小房间,它的空间是有限不可重叠的,但是可以覆盖。想象一下如果我们要放很多东西进去,如果没有合理的安排,所有东西乱放,那么我们需要寻找某一个东西的时候需要把…

【从Python基础到深度学习】2. Ubuntu及插件安装

本期所有软件安装包:链接:https://pan.baidu.com/s/1UVEYm-12FivAnrE5NUXevg?pwdum60 一、安装Ubuntu 1.1 软件安装包:下载 VMware Workstation Pro | CN 一直点下一步即可 1.2 双击运行软件: 输入密钥 1 、VMware 15密钥 …

Elasticsearch:混合搜索是 GenAI 应用的未来

在这个竞争激烈的人工智能时代,自动化和数据为王。 从庞大的存储库中有效地自动化搜索和检索信息的过程的能力变得至关重要。 随着技术的进步,信息检索方法也在不断进步,从而导致了各种搜索机制的发展。 随着生成式人工智能模型成为吸引力的中…

fast.ai 深度学习笔记(四)

深度学习 2:第 2 部分第 8 课 原文:medium.com/hiromi_suenaga/deep-learning-2-part-2-lesson-8-5ae195c49493 译者:飞龙 协议:CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它,这…

Google刚刚推出了图神经网络Tensorflow-GNN

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

钓鱼邮件便捷发送工具(GUI)

简介 本程序利用Python语言编写,使用Tkinter实现图形化界面,可使用Pyinstaller进行exe打包,程序主界面截图如下: 功能 支持腾讯企业邮、网易企业邮、阿里企业邮、自建邮服SMTP授权账号(其他邮服,可在自建…

文生图提示词:中国艺术风格

艺术风格 --中国艺术风格 Chinese Art Styles 中国艺术风格深厚且多样,从古至今演化出了许多独特的艺术形式和技法。 Traditional Chinese Painting 中国传统绘画 Ink and Wash Painting 水墨画 Gongbi 工笔 Xieyi 写意 Shan Shui 山水 Bird-and-Flower Painting 花…

第十八篇【传奇开心果短博文系列】Python的OpenCV库技术点案例示例:图像修复和恢复

传奇开心果短博文系列 系列短博文目录Python的OpenCV库技术点案例示例系列短博文目录前言一、常用的图像修复与恢复技术二、插值方法示例代码三、基于纹理合成的方法示例代码四、基于边缘保持的方法示例代码五、基于图像修复模型的方法示例代码六、基于深度学习的方法示例代码七…