再学C语言7:数据类型(3)——char类型

news2024/9/24 23:32:31

char类型用于存储字母和标点符号之类的字符

在技术实现上,char是整数类型,因为char类型实际存储的是整数而不是字符

为了处理字符,计算机使用一种数字编码,用特定的整数表示特定的字符

经典和常用的是ASCII码,标准ADCII码值的范围为0~127

其他字符集:

1)Unicode字符集,能够表示世界范围内多种字符集系统,目前已有超过96000个字符

2)国际标准化组织(ISO)和国际电工技术委员会(IEC)为字符集开发的ISO/IEC 10646标准,Unicode与10646保持兼容

一、char类型变量的声明

char a;
char b, c;

二、字符常量及其初始化

char code = 'A';

单引号中的一个字符是C的一个字符常量,编译器在编译时会自动将其转换为相应的编码值

char code = 'A';     // 将A视为一个字符常量
char code = A;       // 将A视为一个变量名
char code = "A";     // 将A视为一个字符串

字符实际上以数值的形式存储,也可以使用数值编码赋值:

char code = 65;

这种赋值方式有效的前提是系统采用的是ASCII码,因此实际中推荐使用字符常量赋值,而不是数值编码赋值

三、非打印字符

非打印字符:退格、换行等字符

非打印字符的3种表示方法:

1)使用数值编码赋值

char beep = 7; // 蜂鸣字符的ASCII值为7

2)使用特殊的符号序列——转义序列(Escape Sequence)

转义序列
序列意义备注
\a警报具体现象取决于计算机硬件
\b退格常用的输出设备控制字符
不一定适用于所有设备
\f走纸
\n换行
\r回车
\t水平制表符
\v垂直制表符
\\反斜杠(\)保证使用\, ', "时不会与指令冲突
\'单引号(')
\"双引号(")
\?问号(?)
\0oo

八进制(o表示一个八进制数字)

\xhh十六进制(h表示一个十六进制数字)

3)使用十六进制形式表示字符常量(C90标准开始):反斜杠后跟一个x或X,再加上1到3位十六进制数字

四、字符的打印

printf()函数使用%c说明符打印一个字符

#include <stdio.h>
int main(void)
{
    char ch;
    printf("Please enter a character.\n");
    scanf("%c", &ch);
    printf("You have entered character %c.\n", ch);
    return 0;
}

运行结果:

五、有符号和无符号

一些C实现把char当做有符号类型,其类型值的典型范围为-128~127;一些C实现把char当做无符号类型,其类型值的典型范围为0~255;具体需要查编译器手册,或者通过limits.h头文件查询

在C90标准中,C允许在char之前使用unsigned和signed,无论默认char是有符号或无符号,unsigned char表示无符号,signed char表示有符号;处理小整数时,使用带修饰词的char类型,处理字符时,使用不带修饰词的标准char类型即可

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

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

相关文章

React学习29(react-redux最终完整版)

说明 1&#xff09;所有变量名字要规范&#xff0c;尽量触发对象的简写形式 2&#xff09;reducers文件夹中&#xff0c;编写index.js专门用于汇总并暴露所有的reducer 项目结构 代码示例 index.js import React from react import ReactDOM from react-dom import App fr…

ios 证书与签名

证书与签名 XCode中配置的Code Signing Identity&#xff08;entitlements、certificate&#xff09;必须与Provisioning Profile匹配&#xff0c;并且配置的Certificate必须在本机Keychain Access中存在对应Public&#xff0f;Private Key Pair&#xff0c;否则编译会报错。 X…

Improved Techniques for Training Score-Based Generative Models论文阅读

论文链接&#xff1a;Improved Techniques for Training Score-Based Generative Models 文章目录摘要引言背景郎之万动力学基于分数的生成模型选择噪声尺度初始的噪声尺度其它噪声等级结合噪音信息配置退火朗之万动力学EMA改善稳定性组合所有技巧定量结果消融研究更高分辨率结…

[附源码]计算机毕业设计PythonQ宝商城(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

同样是1亿数据,为什么nutsdb扛不住,而badgerdb可以?

背景 ​ 之前在知乎上看到一个问题&#xff1a;作为一个KV数据库&#xff0c;levelDB为什么使用LSM树实现&#xff0c;而不是hash索引&#xff1f;当时就想作答一番。不过看到问题下方已经有大佬作答了&#xff0c;而我也说不出什么新东西来。于是选择作罢。 ​ 但是最近有nut…

磁共振功能成像BOLD-fMRI原理

小川诚二(Seiji Ogawa)教授于1990年首次在大鼠上实现了功能磁共振成像 fMRI的对比度产生机制 fMRI的信号来源仍然为氢质子&#xff0c;MRI解剖图像对解剖结构的差别非常敏感&#xff0c;fMRI功能图像对神经元活动所伴随的生理变化敏感fMRI的生理学基础 脑的血液动力学&#x…

【Ubuntu】将Qt程序打包制作成deb

1、打包Qt程序 1.1 下载linuxdeployqt 如果使用环境是x86可以直接下载,下载地址 https://github.com/probonopd/linuxdeployqt/releases如果使用环境是嵌入式,需要下载linuxdeployqt源码,自行编译 1.2 安装linuxdeployqt 将下载解压后的linuxdeployqt,拷贝到/usr/local…

Dubbo 3 Dubbo 快速入门 3.2 Dubbo 快速入门 3.2.1 Spring和 SpringMvc 整合

Dubbo 【黑马程序员Dubbo快速入门&#xff0c;Java分布式框架dubbo教程】 3 Dubbo 快速入门 文章目录Dubbo3 Dubbo 快速入门3.2 Dubbo 快速入门3.2.1 Spring和 SpringMvc 整合3.2 Dubbo 快速入门 3.2.1 Spring和 SpringMvc 整合 依然拿着 架构图来比着搞 【实现步骤】 ①创…

5G无线技术基础自学系列 | 单站点验证准备

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 单站点验证需要的准备工作包括硬件及通…

超越nnFormer!UNETR++:高效准确的3D医学图像分割

UNETR: Delving into Efficient and Accurate 3D Medical Image Segmentation 论文链接&#xff1a; https://arxiv.org/abs/2212.04497 代码链接&#xff1a; https://github.com/Amshaker/unetr_plus_plus 导读 这篇论文主要讲述了一种名为 UNETR 的 3D 医学图像分割方法&…

[附源码]Node.js计算机毕业设计黑河市劳务人员管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

绘制面积图(折线图)plot.area方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 绘制面积图&#xff08;折线图&#xff09; plot.area方法 [太阳]选择题 以下python代码结果错误的一项是? import matplotlib.pyplot as plt import pandas as pd import numpy as np myDa…

【LVGL学习笔记】(三)控件使用

LVGL全程LittleVGL&#xff0c;是一个轻量化的&#xff0c;开源的&#xff0c;用于嵌入式GUI设计的图形库。并且配合LVGL模拟器&#xff0c;可以在电脑对界面进行编辑显示&#xff0c;测试通过后再移植进嵌入式设备中&#xff0c;实现高效的项目开发。 LVGL中文教程手册&#…

汇编条件转移指令

目录 条件转移指令&#xff08;基本格式&#xff09; 简单条件转移指令 区分带符号数和无符号数 无符号数条件转移指令 比较内存中两个无符号数的大小&#xff0c;显示器输出小的数 内存中三个无符号数&#xff0c;输出最小的 符号数的条件转移指令 内存中有三个字节型带…

[附源码]Python计算机毕业设计冠军体育用品购物网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

uni-app卖座电影多端开发纪实(一):创建项目

@关于uni-app 今日之C端主要都是跑在手机而非PC上了,其形态也以小程序、App、手机H5页面为主了;大前端之C端 作品拿粗给人看,也十之八九要掏手机了;好在我们有 宇宙制霸人间值得流芳千古不可一世之我是大天才——uni-app!基于Vue+uni-app做开发,一套代码多端打包,老板省钱…

[LeetCode周赛复盘] 第 324 场周赛20221218

[LeetCode周赛复盘] 第 324 场周赛20221218 一、本周周赛总结二、 [Easy] 6265. 统计相似字符串对的数目1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6266. 使用质因数之和替换后可以取到的最小值1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6267. 添加边使所有节点度数…

区块链北大肖老师学习笔记3

第四节:比特币的共识协议 数字货币和纸质货币区别是可以复制&#xff0c;叫作双花攻击 即double spending attack。 去中心化货币要解决两个问题:①数字货币的发行②怎么验证交易的有效性&#xff0c;防止double spending attack。 答案:①比特币的发行是由挖矿决定的 ②…

适合编程初学者的开源博客系统(Vue3+Vant版)

目标 为编程初学者打造入门学习项目&#xff0c;使用各种主流编程语言来实现。让想学编程的&#xff0c;一个都不落下。 上述基本涵盖了当前编程开发所有主流语言。 左侧为前端版本&#xff1a;安卓、iOS、鸿蒙、Flutter、Vue、uni-app、微信小程序。 右侧为服务器端版本&am…

HC-SR501人体感应模块介绍

HC-SR501人体感应模块简介 HC-SR501是基于红外线技术的自动控制模块&#xff0c;采用德国原装进口 LHI778 探头设计&#xff0c;灵敏度高&#xff0c;可靠性强&#xff0c;超低电压工作模式&#xff0c;广泛应用于各类自动感应电器设备&#xff0c;尤其是干电池供电的自动控制产…