转义符:

例子

int main()
{
printf("c:\code\test.c\n");
  return 0;
}

结果

ios转义字符 转义字符啥意思_#include

 

 

可以看出,代码并没有像我们想象的那样打印出来。这就是因为转义字符的原因了。

什么是转义字符呢?顾名思义,从字面意思我们可以看出,转义字符会让某一个符号的含义改变。他可以赋予一些普通的字符特殊的含义,也可以让一些有特殊含义的字符回归普通。

 

详解常见的转义字符
1 转义字符 “\?”

作用:在书写连续多个问号时使用,防止他们被解析成三字母词

2 转义字符 “ \' ”

作用:用于表示字符常量

举例:

#include<stdio.h>

int main()
{
	printf("\'");//将会打印一个'(单引号)
	return 0;
}


3 转义字符 “ \" ”

作用:用于表示一个字符串内部的双引号

举例:

#include<stdio.h>

int main()
{
	printf("\"");//将会打印出"(双引号)
	return 0;
}


4 转义字符 “ \\ ”

作用:用于表示一个反斜杠,防止它被解释为一个转义序列符。

举例:

#include<stdio.h>

int main()
{
	printf("\\");//将会打印出\(反斜杠)
	return 0;
}


5 转义字符 “ \a ”

作用:警告字符,蜂鸣。

6 转义字符 “ \n ”

作用:换行

举例:

#include<stdio.h>

int main()
{
	printf("abc\ndef");//将会打印出abc与def在二行中
	return 0;

}


6 转义字符 “ \r ”

作用:回车

7 转义字符 “ \t ”

作用:水平制表符

说明:相当于按一下键盘上的tab键。

8 转义字符 “ \ddd ”

作用:ddd表示1~3个八进制的数字。 如: \130

举例:

#include<stdio.h>

int main()
{
	printf("%c\n",'\130');  //打印X
	                       //8进制:130
	                      //10进制:88(SCII:X)
	return 0;

}


9 转义字符 “ \xdd ”

作用:dd表示2个十六进制数字。 如: \x44

举例:

#include<stdio.h>

int main()
{
	printf("%c\n", '\x44');  //打印D
						   //16进制:x44
						  //10进制:68(SCII码:D)
	return 0;

}


总结
介绍完上面的,那么转义字符到底怎么用呢?我们用一道题目来说明。

题目:打印 \test\628\test.c

举例:

#include<stdio.h>

int main()
{
	printf("\\test\\628\\test.c\n");//其中的\t 水平制表符
	                                //\62       八进制
	                               //为了防止他们被转义所以我们需要加上“\”
	return 0;
}

字符常量:

利用char声明

字符常量用于储存字母和其它字符,本质上储存的是整数(ASCII字符集)而不是字符。

#include<stdio.h>
int main()
{
	char a = 'd';//c语言中用单引号括起来的就是字符常量。
	char b = 0B01100100;//字符以数值形式储存。
	printf("%d\n%c", a, b);
}



运行结果:

100
d


注意的问题

C语言将字符常量视为int类型而非char类型。

char grade = 'B’ 本来’B’对应的数值66储存在32位的存储单元中,现在却可以储存在8位的存储单元中。利用字符常量的这种特性,可以定义一个字符常量 ’FATE’ ,即把4个独立的8位ASCII码储存在一个32位存储单元中。如果把这样的字符常量赋给char类型变量 grade ,只有最后8位有效。因此, grade 的值是 E.

char ‘a’与char‘asdsadsa’相同 

char只存储一个字符。

字符数组:

一个字符在内存中只占一字节,而字符串本质上是多个字符组成的字符数组。

C语言规定,在每一个字符串常量的结尾,系统都会自动加一个字符 ’\0’ 作为该字符串的“结束标志符”,系统据此判断字符串是否结束。这里要特别强调一点: ’\0’ 是系统自动加上的,不是人为添加的。

’\0’ 它不会引起任何控制动作,也不是一个可以显示的字符。

比如字符串常量"CHINA",表面上看它只有5个字符,但实际上它在内存中占6字节,‘C’、‘H’、‘I’、‘N’、‘A’、’\0’ 各占一字节。如果要输出该字符串,’\0’ 不会输出。也就是说,虽然实际上总共有 6 个字符,’\0’ 也包括在其中,但输出时 ‘\0’ 不会输出。系统从第一个字符 ‘C’ 开始逐个输出字符,直到遇到 ‘\0’,则表示该字符串结束,停止输出。

 

错题

 

int main(int argc, char *argv[]) {
	char a,b;
	a='a';

	b='b';
	a=a-32;
	b=b-32;
	printf("%c,%c,%d,%d\n",a,b,a,b) ;
	return 0;
}

 

A B 65 66

 补充:

C语言没有字符串,C++有字符串。

C语言存入字符串用的是字符串。

例子

char a[n]//定义一个数组

gets [a];将字符存入数组当中

puts [a];将字符输出去。