关于VS调试板块没有窗口等功能的解决
许多同学应该会像我一样,在学习过程中老师说要打开调试-窗口-监视的功能时发现自己的窗口功能少了一大截,原因就在于那些功能需要我们在按F10使用调试功能时才会出现。
如上,问题得以解决。
字符串+转义字符+注释
字符串
arr1内有4个元素,arr2内只有3个元素。差异在于最后的0,那我们在最后加上0尝试一下:
输出结果一样了。实质说明,字符串"abc"内为’a’,‘b’,‘c’,‘\0’,\0的值为0,其意义为字符串的结束标志。
arr2一开始没有这样的结束标志,所以在输出abc之后还有一大堆随机生成的乱码,加上了\0之后就有了结束标志,但其不会算入字符。
在监视窗口中我们也能看到a在ASCII码中的值为97。
接下来我们求其长度,通过strlen函数,但是注意,我用的VS2022编译器必须得在最前引入
#include<string.h>
才能正常使用这个函数。
第一个结果我们好理解,三个字符和最后一个不算进去的\0长度为3
第二个结果呢实际应该是一个我们在运行之前都无法猜测的>=3的随机值。它会在走完a、b、c三个字符之后继续往下走随机生成的字符,一直到随机生成了0才停止。
转义字符
转义,即转变原来的意思。
刚刚字符串只是中的\0就是一个转义字符。
我这种编译器还不够明显
第一种:abc请按任意键继续
第二种:abcn请按任意键继续
第三种:
abc
请按任意键继续
\n此时成了换行的作用,转义字符将其转变为原来不再有的意义
常见转义字符:
? 在书写连续多个问号时使用,防止他们被解析成三字母词
\‘用于表示字符常量’
\"用于表示一个字符串内部的双引号
\\用于表示一一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\ddd:ddd表示1~3个八进制的数字。如: \130 X
\xdd:x表示16进制,dd表示2个十六进制数字。如: \x30 0
三字母词在VS高级版本之后已经失去了意义。比如我现在用的VS2022的版本运行以下代码:
是能够得到我认为的正常结果,但是若有三字母词的影响则会得到:
(are you OK]
这样的结果。原因是??)构成了一个三字母词,三字母词构成条件即为??加上一个其它字符,出现在早期C语言编译中。
printf("(are you OK\?\?)\n"
这样就能防止被识别成三字母词得到我们现在编译器不用反斜杠的结果。
接下来我们稍微介绍一下其它部分转义字符:
这里为什么是13呢?原因很简单,加粗的橙色字体算一个整体字符。
\ddd前面介绍ddd为1-3个八进制数字,而\32换算到十进制即26。我们查前面的ASCII码表中可以找到其含义,
将其打印输出果然就是这个结果。
注释
//为C++的注释格式,C语言早期的注释格式
/*作为注释起点
*/作为注释终点
C语言的早期注释不能够嵌套注释,有其局限,之后便加入了C++的注释格式。
VS2022选中内容之后快捷键:
注释:Ctrl+K+C
取消注释:Ctrl+K+U