文章目录

  • 1、字符串
  • 2、转义字符
  • 3、注释


1、字符串

#include<stdio.h>
int main()
{
	'a';//字符
	"abcd";//字符串
	return 0;
}

"abcd"这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。

如何打印字符串:

图一

lua语言中方括号与大括号_c语言

分析:char是字符类型,C语言中没有字符串类型。所以我们要引入一个数组,数组是一组同类型的元素,创建字符数组arr,方括号中的大小可写可不写,当方括号中没有写大小是,会自动根据反括号后面的内容来初始化方括号的大小。我们要如何知道方括号中的元素有多少呢?按F10调试,再按F10开始调试,调试-窗口-监视-4个监视任意选择。

图二

lua语言中方括号与大括号_c语言_02


图三

lua语言中方括号与大括号_c语言_03


在监视窗口中可以看到arr1有一个\0,由此可见字符串在结尾隐藏了一个\0字符。注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

\0 的重要性
我们这里有三组数组,看图三我们打印三组数组会发现,arr1和arr2字符个数不一样,arr1比arr2多了一个\0,看图一,我们把他们打印出来会发现打印结果也不一样,arr1在打印的时候遇到隐藏的\0字符就会结束,所以打印出来的结果是abcd,而arr2在打印的时候没有遇到\0字符所以他就不会停止,我们在arr2的基础上给他加上一个\0字符就是我们的arr3,我们会发现不论是字符个数还是打印结果arr1和arr3都是一样的。

换一种方法继续验证\0的重要性

lua语言中方括号与大括号_学习_04

我们这里运用了strlen(string length)函数,这是一个求字符串长度的函数,使用这个函数的时候必须包含他的头文件头文件 string.h,不然无法运行。
看打印结果我们会发现arr1和arr3的打印结果为4,为什么不是5呢?因为在这里\0是一个结束标志,在计算字符串长度的时候不计算在内,所以是4不是5。我们会发现arr2打印出来是16,这里arr2的数组长度是一个随机值,因为当数组在计算的时候没有遇到\0结束标志符的时候会继续运行知道遇到\0才会停止。这里再一次的体现了\0的重要性!

2、转义字符

转义字符顾名思义就是转变意思。

#include <stdio.h>
int main()
{
	printf("c:\test\test.c");
	return 0;
}

打印结果为:

lua语言中方括号与大括号_c语言_05


分析:因为这里\t为转移字符,所以打印路径的时候一定要用\\

lua语言中方括号与大括号_学习_06


转义字符表

转义字符

释义

\?

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

\'

用于表示字符常量’

\"

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

\\

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

\a

警告字符,蜂鸣

\b

退格符

\f

进纸符

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\ddd

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

\xdd

dd表示2个十六进制数字。 如: \x30 0

这边主要讲一下\ddd 和\xdd两个转义字符。
\ddd 和\xdd中的d分别表示八进制和十六进制。

#include <stdio.h>
int main()
{
	printf("%c\n",'\130');
	return 0;
}

打印结果:

lua语言中方括号与大括号_c语言_07


分析:

我们打印的130是个八进制数,转换成十进制是88。

130(八进制)=64+23+0=88,ASCII码值中88对应的就是X。

#include <stdio.h>
int main()
{
	printf("%c\n", '\x63');
	return 0;
}

打印结果:

lua语言中方括号与大括号_学习_08


分析:

我们打印的60为十六进制数,转换成十进制是96。60(十六进制)=96+3=99,ASCII码值中99对应的就是c。

lua语言中方括号与大括号_lua语言中方括号与大括号_09

  • '0’对应的ASCII码值是48
  • 'A’对应的ASCII码值是65
  • 'a’对应的ASCII码值是97

我们发现大写字母和小写字母对应的值总是相差32

下面是一道笔试题

lua语言中方括号与大括号_开发语言_10


分析:

其中strlen函数是一个求字符串长度的函数,\t,和\62为转义字符,其中的8不是八进制,8进制的数字是0-7不包含8。

补充:
%d - 打印整型
%c - 打印字符
%s - 打印字符串
%f - 打印float类型的数据
%lf - 打印double类型的数据
%zu - 打印sizeof的返回值

3、注释

  1. 代码中有不需要的代码可以直接删除,也可以注释掉
  2. 代码中有些代码比较难懂,可以加一下注释文字
  3. 注释有两种风格:
  • C语言风格的注释 /*xxxxxx*/ 缺陷:不能嵌套注释
  • C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行