C语言学习(第二天)

目录

1.关键字介绍

 2.字符和ASCII编码

3.转义字符


1.关键字介绍

C语言中有一批保留的名字的符号,比如: int if return ,这些符号被称为保留字或者关键
字。

  1. 关键字都有特殊的意义,是保留给C语言使用的
  2. 程序员自己在创建标识符的时候是不能和关键字重复的
  3. 关键字也是不能自己创建的。

 C语言的32个关键字如下:

auto break case char const continue default do double else enum ex
float for goto if int long register return short signed sizeof
struct switch typedef union unsigned void volatile while

C语言关键字的官方文档 C 关键词 - cppreference.com

 2.字符和ASCII编码

在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语言中字符是用单引号括起来的,如:'a','b','@'。

我们知道在计算机中所有的数据都是以二进制的形式存储的,那这些字符在内存中分别以什么样二
进制存储的呢?如果我们每个人自己给这些字符中的每个字符编一个二进制序列,这个叫做编码为
了方便大家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了一个标准 ASCII 码,C语言中的字符就遵循了 ASCII 编码的方式。

ASCII表官网 ASCII 码表 - cppreference.com

重点要记的关键字ASCII码

字符A~Z的ASCII码值从65~90
字符a~z的ASCII码值从97~122
对应的大小写字符(a和A)的ASCII码值的差值是32
数字字符0~9的ASCII码值从48~57
换行 \n 的ASCII值是:10

在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察

单个字符的打印可以使用%c来指定格式:

#include <stdio.h>
int main()
{
printf("%c\n", 'Q');
printf("%c\n", 81);//这里的81是字符Q的ASCII码值,也是可以正常打印的
return 0;
}

可打印字符展示:

#include <stdio.h>
int main()
{
int i = 0;
for (i = 32; i <= 127; i++)
{
printf("%c ", i);
if (i % 16 == 15)
printf("\n");
}
return 0;
}

3.转义字符

也许在前面的代码中你看到\n , \0 很纳闷时啥。其实在字符中有一组特殊的字符是转义字符,转义
字符顾名思义:转变原来的意思的字符。
比如:我们有字符n ,在字符串中打印的时候自然能打印出这个字符,如下:

#include <stdio.h>
int main()
{
printf("abcndef");
return 0;
}

如果我们修改一下代码,在n 的前面加上\ ,变成如下代码:

#include <stdio.h>
int main()
{
printf("abc\ndef");
return 0;
}

\n是一个转义字符表示换行的意思,我们可以简单的理解为\ 让n 的意思发生了转变,n 本来是一个普通的字符,被\ 转义为换行的意思。

C语言中像这样的转义字符还有一些,具体如下:

• \? :在书写连续多个问号时使用,防止他们被解析成三字母词,在新的编译器上没法验证了。
• \' :用于表示字符常量'
• \" :用于表示一个字符串内部的双引号
• \\ :用于表示一个反斜杠,防止它被解释为一个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发生。
• \b :退格键,光标回退一个字符,但不删除字符。
• \f :换页符,光标移到下一页。在现代系统上,这已经反映不出来了,行为改成类似于\v 。
• \n :换行符。
• \r :回车符,光标移到同一行的开头。
• \t :制表符,光标移到下一个水平制表位,通常是下一个8的倍数。
• \v :垂直分隔符,光标移到下一个垂直制表位,通常是下一行的同一列。
下面2种转义字符可以理解为:字符的8进制或者16进制表示形式
• \ddd :d d d表示1~3个八进制的数字。 如: \130 表示字符X
• \xdd :d d表示2个十六进制数字。 如: \x30 表示字符0

\0 :null 字符,代表没有内容, \0 就是\ddd 这类转义字符的一种,用于字符串的结束标志,其
ASCII码值是0.

#include <stdio.h>
int main()
{
    printf("%c\n", '\'');
    printf("%s\n", "\"");
    printf("c:\\test\\code\\test.c\n");
    printf("\a");
    printf("%c\n", '\130'); //130是8进制,转换成10进制是88,以88作为ASCII码值的字符是
    printf("%c\n", '\x30'); //x30中的30是16进制,转换成10进制是48,以48作为ASCII码值的

    return 0;
}

转义字符参考转义序列 - cppreference.com

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顶配

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值