目录
1.关键字介绍
2.字符与ASCII编码
3.字符串
免责声明
1.关键字介绍
在编写C语言程序的过程中,我们往往会用到很多的变量,所以也会给变量取各种各样的名字,聪明的你肯定会想到,C语言中好像有一些规定着其特定作用的词语,比如:int 、if 、return 等,如果我们在创建标识符时和这些词语重复了怎么办,C语言的发明者自然也想到了这个问题,所以便有了关键字。
关键字也叫保留字,是C语言中一批保留了名字的符号。需要注意的是以下几点:
- 关键字是C语言自带的,我们无法自己创建关键字。
- 每个关键字都有其特殊的意义,是保留给C语言来使用的。
- 我们在创建标识符时是不能和关键字重复的。
我们常见的关键字如下所示:
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while除了以上这些关键字外,还有很多关键字,我们可以从下面的网址来进行了解
https://zh.cppreference.com/w/c/keyword
2.字符与ASCII编码
我们可以通过键盘敲出的如 a,B ,@ 等符号就被称为字符,在C语言中字符是用单引号括起来的,如 'a' 、'B' 、'@' 等
众所周知,计算机中的数据都是以二进制储存的,也就是一串0和1的组合,但我们实际看到的却不是0和1而是一个个字符,聪明的你很快就想到了,我们只需要让一个二进制的序列对应一个字符,到需要用数据的时候直接让计算机按照对应关系输出字符,不就可以了,但是显然,如果每个人都有自己的一套对应规则,那么提取出的数据肯定也不是正确的数据,为了方便大家相互通信,不造成混乱,来美国国家标准学会(ANSI)便出台了⼀个标准 ASCII 编码,C语言中的字符就遵循ASCII编码的方式。
在ASCII码表中编码为0-31的32个字符为不可打印字符,无法打印在屏幕中。
当我们需要打印单个的字符时,可以使用%c来指定格式,如
#include<stdio.h> int main() { printf("%c\n", '$'); printf("%c\n", 81); return 0; }结果为
$ Q值得注意的是虽然日常生活中我们可以在忘记对应编码时上网查询ASCII编码,但在比赛中或者其他一些无法查询的场合,记住部分常用编码就显得尤为重要了,比如
- 字符A~Z的ASCII码值从65~90
- 字符a~z的ASClI码值从97~122(大小写对应差值为32)
- 数字字符0~9的ASCII码值从48~57
- 换行 \n 的ASCll码值是:10
当然,在可以编写C语言代码时,也有一个查询部分ASCII码值的邪修办法:直接让计算机把码值为32~127对应的字符输出:
#include<stdio.h> int main() { int i = 0; for (i = 32; i < 128 ; i++) { printf("%c ", i); } return 0; }输出结果:
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~3.字符串
字符串,顾名思义,就是字符连成串,一般来讲,在C语言中用双引号括起来的一串字符就被称为字符串,如"abcdefg" 、"你好,世界!"。
字符串可以直接打印,也可以用 %s 来指定,示例如下:
#include<stdio.h> int main() { printf("abcdefg\n"); printf("%s", "abcdefg"); return 0; }结果:
abcdefg abcdefg值得注意的是在字符串的末尾隐藏放着一个 \0 字符,这个 \0 字符是字符串结束的标志。
通过监视我们就可以看到,字符串 “abcdefg” 的末尾多出了一个 \0,它是隐藏的,正常情况我们是无法看见的。
我们还可以通过下面的程序验证一下:
#include<stdio.h> int main() { char a1[] = { 'a' , 'b' , 'c' }; //a1数组中存放三个字符 char a2[] = "abc"; //a2数组中存放一个字符串 printf("%s\n", a1); //均输出字符串类型 printf("%s\n", a2); return 0; }结果:
abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘟bc abc我们可以发现第一次输出,后面出现了一堆乱码,这是因为第一次输出时,由于没有 \0 来表示字符串的结束,程序自动将内存中存放第一部分的后面的内容也读取了出来,但后面的部分本身不属于这里,强行拿过来,就成了乱码。而第二次输出由于有 \0 作为结束的标识,输出完后自动停止,所以输出正常。
免责声明
本人写这些教程本意是为了总结自己在C语言学习过程中的一些感悟,本人也正处于学习阶段,有些地方可能写的不是很好或者有些问题,欢迎在评论区或者留言指正,有不懂的地方也可以评论或留言,前期排版可能也不是很好,会努力改进的,感谢支持。