文章目录

  • 一、预备知识
  • 二、char类型
  • 三、声明与初始化
    • 1、声明
    • 2、字符常量和初始化
    • 3、非打印字符

一、预备知识

  1. 字符的定义:字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。在C语言中,用单引号括起来的单个字符被称为字符常量。用双引号括起来的内容被称为字符串字面量或字符串常量。注意:双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串存储在内存中

  2. 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码时,直接查表即可。

  1. 宽窄字符与一个字符所占的字节数有关。如果一个字符只占一个字节,那么它就是窄字符;一个宽字符通常占两个字节。

二、char类型

  1. char类型用于存储字符。从本质上看,char类型存储的是整数而不是字符。因为计算机使用数字编码处理字符,即用特定的整数表示特定的字符。最常用的数字编码是ASCII编码。
    注意:在C语言中,只有 char 类型的窄字符才使用 ASCII 编码,char 类型的窄字符串、wchar_t 类型的宽字符和宽字符串都不使用 ASCII 编码!
    对于窄字符串,C语言并没有规定使用哪一种特定的编码,只要选用的编码能够适应当前的环境即可,所以,窄字符串的编码与操作系统和编译器有关。
    但是,可以肯定的说,在现代计算机中,窄字符串已经不再使用 ASCII 编码了

  2. C语言规定:无论时候32位操作系统还是64位操作系统,把1字节定义为char类型占用的位数

  3. 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语言提供两种表示转义序列:

  1. 使用ASCII码表示,如换行符的ASCII值是10,代码如下:
char ch = 10;
  1. 使用特殊符号表示转义序列的含义,代码如下:
char ch = '\n'; // 把换行符赋值给字符常量

写在最后:本人编程初入门,上述讲解如有错误,请各位读者多多指教。

初识C语言之详解char类型相关推荐

  1. C语言之详解#ifdef等宏

    C语言之详解#ifdef等宏 这几个宏是为了进行条件编译.一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是&qu ...

  2. c语言的指针详解ppt,最全的C语言指针详解.ppt

    最全的C语言指针详解.ppt 第6章 指针,6.1 指针定义与使用 6.2 指针与函数 6.3 指针与数组 6.4 指针与字符串 6.5 指针数组与多级指针 6.6 指针与动态内存分配 6.7 指针的 ...

  3. C#语言入门详解笔记(5)—P10、P11、P12 操作符详解_1_2_3

    C#语言入门详解_哔哩哔哩_bilibiliC#语言入门详解搬运,随youtube上进度更新.刘老师的C#视频教程到30集就告一段落了,感谢刘老师在这5年间的付出.能上youtube的同学可以去刘老师 ...

  4. C语言指针详解(全解)—— 前篇

    关于指针的基本概念及相关运算写在了上一篇博客 C语言指针详解(初级)_Seinrich的博客-CSDN博客 本篇博客来详细的解说一下指针,深入探讨指针 一.指针与const const修饰的变量为常变 ...

  5. Python的C语言接口 - 详解官方文档

    Python的C语言接口 - 详解官方文档 索引 Python的C语言接口 - 详解官方文档 介绍 / Introduce 代码标准 / Coding Standards 包含文件 / Include ...

  6. C语言中可以用字符串常量来,C语言字符串详解

    原标题:C语言字符串详解 字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中.同时,C 语言提供了一系列库函数来对操作字符串, ...

  7. c语言数组详解视频,C语言数组详解

    <C语言数组详解>由会员分享,可在线阅读,更多相关<C语言数组详解(55页珍藏版)>请在人人文库网上搜索. 1.就是一组具有固定数目的.有序的.类型相同的数据的集合.根据数组下 ...

  8. c语言怎么给c1赋值字母,C语言赋值运算符详解

    C语言赋值运算符详解 C语言赋值运算符是什么呢,简单赋值运算符记为"=",由"= "连接的式子称为赋值表达式.下面小编为你介绍C语言赋值运算符吧! 其一般形式为 ...

  9. MLIR初识 —— Dialect及Operation详解

    MLIR初识 -- Dialect及Operation详解 论文链接: MLIR: A Compiler Infrastructure for the End of Moore's Law 文章目录 ...

最新文章

  1. [A Dangerous Maze LightOJ - 1027 ][概率题]
  2. 学python要基础吗-自学Python要有其他语言基础吗?
  3. sphinx+coreseek+php扩展--用php程序实现中文拆词
  4. DIB位图(Bitmap)的读取和保存
  5. Document is invalid: no grammar found. at (null:3:8)
  6. mysql删除数据不会减少存储占用_Mysql单文件存储删除数据文件容量不会减少的bug与解决方法...
  7. 微软跨平台移动开发工具套件HockeyApp宣布免费
  8. python mysql 正则表达式,MySQL之正则表达式(REGEXP)
  9. lora信号测试小助手_433m无线收发模块LoRaF30如何进行距离测试
  10. SAP License:COPA分摊循环-FKART开票类型作为循环接收方
  11. Java开发遇到的问题及解决方案
  12. 确定数组是否包含值[重复]
  13. GRIDVIEW 中当数据行数未满时,填充空白行
  14. 2021华为软件精英挑战赛的baseLine,Java版,仅供参考,无核心算法
  15. 玩转BIOS与注册表
  16. 我的第一个MASM32程序(MASM32环境配置)
  17. 怎么导出微信聊天的记录到Word
  18. python中如何画图中图
  19. chrome更新后,再次使用selenium打开chrome却发现闪退了?全网最详细教程,肯定能帮到你!
  20. python matplotlib画饼形图

热门文章

  1. 浏览器中Vimium 插件快捷键
  2. 迎接Ubuntu Flatpak Remix,预装了Flatpak支持的Ubuntu
  3. Python的rabbitMQ
  4. LeetCode:974. Subarray Sums Divisible by K - Python
  5. 微信小程序之左右布局
  6. 【t100】汤姆斯的天堂梦
  7. Java开发工程师面试三分钟自我介绍
  8. LocalDateTime计算两个时间的间隔
  9. 多个精美的导航样式web2.0源码
  10. Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令