C语言字符串、转义字符

字符串

由双引号引起来的一串字符称为字符串,例如"hello world!"。

注:字符串的结束标志是\0,。在计算字符串长度时\0是结束标志,不作为字符串内容。

#include <stdio.h>

int main()
{
	char arr[] = "hello";
	return 0;
}

 通过调试不难发现数组arr最后面是还有一个\0的,而这个\0并没有计入数组的长度内。

#include <stdio.h>
#include <string.h>//引用包含有strlen的头文件

int main()
{
	char arr[] = "hello";
	printf("%d ", strlen(arr));//strlen是计算长度的关键字
	return 0;
}

 这里出现了一个警告,我不太理解,请大家指正。

 接下来再对比字符和字符串的差别

,通过调试发现arr2在最后是没有\0的 

但是在打印arr1和arr2的时候可以看到这时候就出了一些问题,后面出现了一些乱码。

#include <stdio.h>

int main()
{
	char arr1[] = "hello";
	char arr2[] = { 'h', 'e', 'l', 'l', 'o' };
	printf("%s ", arr1);
	printf("%s ", arr2);
	return 0;
}

为什么会出现这种情况,可以用一张图来理解一下

arr1和arr2都占用了数组空间中的位置,而arr1在o之后有\0终止,但是arr2没有,这时就会继续往后读取内存空间,但是后面的内存空间我们不知道储存了什么,这时候就会出现乱码的情况。

转义字符

\?在书写连续多个问号时使用,防止他们被解析成3字母词
\'用于表示字符常量‘
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直指标符
\dddddd表示1~3个八进制的数字,如:\130 X
\xdddd表示2个十六进制的数字,如:\30 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值