栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言---5 初识字符串、转义字符、注释

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言---5 初识字符串、转义字符、注释

1、字符串

“hellon”这种由双引号(double quote)引起来的一串字符称为字符串字面值(string literal),或简称字符串。字符串的结束标志是一个“”的转义字符,在计算字符串长度的时候,“”是结束标志,不算作字符串内容。

#include 
int main()
{
	char arr1[] = "hello";//这里不写数组的大小,数组就会根据后面字符串的内容来初始化它
	return 0;
}

写完这段代码之后,按键盘上的F10启动调试,点击菜单栏的“调试”–“窗口”–“监视”,就可以看到该数组的内容:

修改代码,查看运行结果:

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


因为在程序运行的时候,是给数组1以及数组2分别分配了内存空间,对于数组1来说,打印完字符串hello时,它有结束标识符;但是对于数组2来说,没有手动加入结束的标识符,所以打印完hello之后,就会在内存中找结束标识符,啥时候找到就啥时候停止运行,在没找到结束标识符的时候就会打印内存里面的内容,而我们也不知道内存里面是什么内容,所以会有乱码出现。我们“监视”一下调试过程来看一下:

在此代码的基础上,我们来看一下两个数组的长度是否一样?

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

运行结果如下:第一个数组的长度为5,第二个为随机值。因为在数组2中,我们不知道’h’,‘e’,‘l’,‘l’,'o’后面还有什么内容,strlen就会一直去寻找结束标识符,直到找到才会停止。

hello
hello烫烫烫烫烫烫烫烫烫烫烫?p.
5
34

将char arr2[] = {'h','e','l','l','o'};改为char arr2[] = {'h','e','l','l','o',''};,手动加上结束标识符,看运行结果,并作监视:

另外,在学习中碰到这样的问题,就是监视时会显示无法读取内存的情况,不太会解决,希望有会的伙伴帮助一下~

2、转义字符
?在书写连续多个问号时使用,防止它们被解析成三字母词
’用于表示字符常量’
"用于表示一个字符串内部的双引号
用于表示一个反斜杠,防止它被解释为一个转义序列符
a警告字符,蜂鸣
b退格符
f进纸符
n换行
r回车
t水平制表符
v垂直制表符
dddddd表示1`3个八进制数字,如130表示X
xdddd表示2个十六进制数字,如 x30 表示0
int main()
{
	printf("%cn",'130');
	printf("%cn", '101');
	printf("%cn", 'x30');
	return 0;
}

运行结果:

X
A
0

八进制的130表示为十进制是:1x82+3x81+0x80=88,大写X的ASCII码值为88,故打印结果为X。八进制101对应的十进制是65,65对应的ASCII码值为A,故打印结果为A。
x30表示为十进制是:3x161=48,48对应的ASCII码值是字符0.
练习:
想一下程序的输出结果会是多少?

int main()
{
	printf("%dn",strlen("abcdefg"));
	printf("%dn", strlen("c:test328test.c"));
	return 0;
}

结果是7和14.第二个为什么是14呢,因为

注意:328这里32是一部分,8是一部分,因为三位数的八进制里面没有8(0-7)。

3、注释

快捷键:ctrl+c+k,ctrl+k+u

  • 代码中有不需要的地方可以直接删除,也可以注释掉
  • 代码中有些地方会比较难懂,可以加一下注释文字
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932360.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号