手记

【九月打卡】第3天-C01学习C语言基础

  • 课程链接:https://coding.imooc.com/learn/list/463.html
  • 课程名称:C语言系统化精讲,重塑编程思想,打造坚实的开发基础
  • 章节名称:
    • 第3章:C语言快速入门
      • 3-2数据类型之char类型
  • 讲师姓名:bennyhuo
  • 时间:2022-09-07 11:50

课程内容

  • char类型变量可以直接使用单引号把一个字符括起来,来给变量赋值

    • 也可以使用转义的方式来给变量赋值:例如char c = ‘\0’;这是一种转义字符,也可以给普通字符进行转义

    • 如char c1 = ‘\61’,这里表面上看,是把ASCII码为61的赋值给变量,但实际上这里面的61是一个八进制数,变为十进制是49,即’1’

    • 也可以用十六进制来赋值,如char c2 = ‘\x31’,也是’1’

    • 几个重要的字面量literal(纯常量,是保存在常量区内存中)

      写法 表示内容 写法 表示内容
      \n new line \b backspace
      \r return(回车) \t table
      \’ 单引号,表示字符的字面量 \" 表示字符串字面量
    • 以上内容都ASCII字符集规定的,最开始,只使用128个字符,即7个字节,后来扩展到256个字符,8个字节

    • 如果想保存中文,char类型的长度显然不能名数(中文字符成千上万),所以中文使用的Unicode字符集,面变量类型调整为宽字符类型

    • 在C95下,定义了wchar_t类型来表示宽字符

      • wchar_t c3 = L'中';\\ 这其中的wchar_tunsigned short类型的别名,因为short就是16位的类型,可以保存Unicode类型值
      • 以上定义有些复杂,可以直接把非ASCII字符都定义成字符串:char *cs = "中";
    • 字符编码问题:码点code point

      • 在windows系统下,IDE中文件的默认编码为GBK,对英文字符无影响,但对汉字字符就会有很大影响
      • 我们在源代码中,使用中文字符,如果IDE是以UTF-8来保存中文字符,但编译器会以GBK的编码来编译源文件,如果这个中文被保存成UTF-8格式不可识别,或认定错误的字符,就无法编译下去,程序会报错

学习心得

关于字符编码的问题还需要另写文章来学习

0人推荐
随时随地看视频
慕课网APP