字符和ASCII码
如:a,q,@,#等,这些符号都被称为字符。C语言中字符是用单引号括起来的如:'a','b','@'。
C语言中的字符就遵循了 ASCII 编码的⽅式。
![3358eb04f21645459ea1bc198dd91e3f.png](https://i-blog.csdnimg.cn/blog_migrate/21b7938da7c6b59eea8c196eedd4f68b.png)
这些数字一般不需要我们去记忆,但是这些需要注意一下:
• 字符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;
}
在一定条件下,ASCII码和数字是通用的
字符串和\0
使用双引号括起来的⼀串字符就被称为字符串,如:"abcdef",就是一个字符串。
字符串用%s打印
#include <stdio.h>
int main()
{
printf("%s\n", "abcdef");
printf("abcdef");
return 0;
}
注:在字符串的末尾隐藏放着⼀个 \0 字符,这个\0字符是字符串的结束标志。
转义字符
在字符中有⼀组特殊的字符是转义字符,转义字符顾名思义:转变原来的意思的字符。
比较一下两段代码
#include <stdio.h>
int main()
{
printf("abcndef");
return 0;
}
#include <stdio.h>
int main()
{
printf("abc\ndef");
return 0;
}
第一段代码的结果是 abcdef
第二段代码的结果是abc
def
这就是转义字符的问题, \n 是一个转义字符表示换行的意思,我们可以简单的理解为\让 n 的意思发生了了转变,n本来是⼀个普通的字符,被 \ 转义为换行的意思。
• \? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
• \' :⽤于表示字符常量'
• \" :⽤于表示⼀个字符串内部的双引号
• \\ :⽤于表示⼀个反斜杠,防止它被解释为⼀个转义序列符。
• \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
语句和语句分类
• 空语句 ;
• 表达式语句 b=a+5
• 函数调语用句 printf("%d",b)
• 复合语句 for(i=0; i<10; i++)
//for
循环的循环体的大括号中的就是复合语句
• 控制语句 1. 条件判断语句也叫分支语句:if语句、switch语句;
2. 循环执行语句:do while语句while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句。
注释
常用的一般有//或者/**/
注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。