初识C语言之详解char类型
文章目录
- 一、预备知识
- 二、char类型
- 三、声明与初始化
- 1、声明
- 2、字符常量和初始化
- 3、非打印字符
一、预备知识
字符的定义:字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。在C语言中,用单引号括起来的单个字符被称为字符常量。用双引号括起来的内容被称为字符串字面量或字符串常量。注意:双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串存储在内存中。
ASCII编码表:
从ASCII表中可知,标准ASCII吗的范围是0~127.
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符)32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
注意:ASCII表不需要记忆全部内容,只需要知道字符零的ASCII值以及大写A和小写a的ASCII值。当需要用到其他ASCII码时,直接查表即可。
- 宽窄字符与一个字符所占的字节数有关。如果一个字符只占一个字节,那么它就是窄字符;一个宽字符通常占两个字节。
二、char类型
char类型用于存储字符。从本质上看,char类型存储的是整数而不是字符。因为计算机使用数字编码处理字符,即用特定的整数表示特定的字符。最常用的数字编码是ASCII编码。
注意:在C语言中,只有 char 类型的窄字符才使用 ASCII 编码,char 类型的窄字符串、wchar_t 类型的宽字符和宽字符串都不使用 ASCII 编码!
对于窄字符串,C语言并没有规定使用哪一种特定的编码,只要选用的编码能够适应当前的环境即可,所以,窄字符串的编码与操作系统和编译器有关。
但是,可以肯定的说,在现代计算机中,窄字符串已经不再使用 ASCII 编码了C语言规定:无论时候32位操作系统还是64位操作系统,把1字节定义为char类型占用的位数。
C语言中如int、long、short等不指定signed或unsigned时都默认为signed,但char在标准中不指定为signed或unsigned,编译器可以编译为带符号的,也可以编译为不带符号的。
4.一般情况下,取值范围如下:
char : -128 ~ -127
signed char: -128 ~ -127
unsigned char : 0 ~ 255
三、声明与初始化
1、声明
声明char类型变量的方式与声明int类型变量的方式是相同的,代码如下:
char ch;//声明一个char类型的变量告诉编译器在内存中开辟一个字节大小的空间
char ch1, ch2; //声明两个char类型的变量,分别为ch1,ch2
2、字符常量和初始化
在C语言中,用单引号括起来的单个字符被称为字符常量。但是C语言把字符常量视为int类型。
字符变量初始化,代码如下:
char grade = 'a'; //声明一个char类型的变量,并为其赋值
char grade = a; // 错误!此时T是一个变量
char grade = "a"; //错误!此时"a"是一个字符串
3、非打印字符
观察ASCII表会发现,一些ASCII字符是不能直接打印出来的,这是需要借助转义序列。C语言提供两种表示转义序列:
- 使用ASCII码表示,如换行符的ASCII值是10,代码如下:
char ch = 10;
- 使用特殊符号表示转义序列的含义,代码如下:
char ch = '\n'; // 把换行符赋值给字符常量
写在最后:本人编程初入门,上述讲解如有错误,请各位读者多多指教。
初识C语言之详解char类型相关推荐
- C语言之详解#ifdef等宏
C语言之详解#ifdef等宏 这几个宏是为了进行条件编译.一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是&qu ...
- c语言的指针详解ppt,最全的C语言指针详解.ppt
最全的C语言指针详解.ppt 第6章 指针,6.1 指针定义与使用 6.2 指针与函数 6.3 指针与数组 6.4 指针与字符串 6.5 指针数组与多级指针 6.6 指针与动态内存分配 6.7 指针的 ...
- C#语言入门详解笔记(5)—P10、P11、P12 操作符详解_1_2_3
C#语言入门详解_哔哩哔哩_bilibiliC#语言入门详解搬运,随youtube上进度更新.刘老师的C#视频教程到30集就告一段落了,感谢刘老师在这5年间的付出.能上youtube的同学可以去刘老师 ...
- C语言指针详解(全解)—— 前篇
关于指针的基本概念及相关运算写在了上一篇博客 C语言指针详解(初级)_Seinrich的博客-CSDN博客 本篇博客来详细的解说一下指针,深入探讨指针 一.指针与const const修饰的变量为常变 ...
- Python的C语言接口 - 详解官方文档
Python的C语言接口 - 详解官方文档 索引 Python的C语言接口 - 详解官方文档 介绍 / Introduce 代码标准 / Coding Standards 包含文件 / Include ...
- C语言中可以用字符串常量来,C语言字符串详解
原标题:C语言字符串详解 字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中.同时,C 语言提供了一系列库函数来对操作字符串, ...
- c语言数组详解视频,C语言数组详解
<C语言数组详解>由会员分享,可在线阅读,更多相关<C语言数组详解(55页珍藏版)>请在人人文库网上搜索. 1.就是一组具有固定数目的.有序的.类型相同的数据的集合.根据数组下 ...
- c语言怎么给c1赋值字母,C语言赋值运算符详解
C语言赋值运算符详解 C语言赋值运算符是什么呢,简单赋值运算符记为"=",由"= "连接的式子称为赋值表达式.下面小编为你介绍C语言赋值运算符吧! 其一般形式为 ...
- MLIR初识 —— Dialect及Operation详解
MLIR初识 -- Dialect及Operation详解 论文链接: MLIR: A Compiler Infrastructure for the End of Moore's Law 文章目录 ...
最新文章
- [A Dangerous Maze LightOJ - 1027 ][概率题]
- 学python要基础吗-自学Python要有其他语言基础吗?
- sphinx+coreseek+php扩展--用php程序实现中文拆词
- DIB位图(Bitmap)的读取和保存
- Document is invalid: no grammar found. at (null:3:8)
- mysql删除数据不会减少存储占用_Mysql单文件存储删除数据文件容量不会减少的bug与解决方法...
- 微软跨平台移动开发工具套件HockeyApp宣布免费
- python mysql 正则表达式,MySQL之正则表达式(REGEXP)
- lora信号测试小助手_433m无线收发模块LoRaF30如何进行距离测试
- SAP License:COPA分摊循环-FKART开票类型作为循环接收方
- Java开发遇到的问题及解决方案
- 确定数组是否包含值[重复]
- GRIDVIEW 中当数据行数未满时,填充空白行
- 2021华为软件精英挑战赛的baseLine,Java版,仅供参考,无核心算法
- 玩转BIOS与注册表
- 我的第一个MASM32程序(MASM32环境配置)
- 怎么导出微信聊天的记录到Word
- python中如何画图中图
- chrome更新后,再次使用selenium打开chrome却发现闪退了?全网最详细教程,肯定能帮到你!
- python matplotlib画饼形图