c语言sizeof运算符,字符串的sizeof
1.线
字符串定义为由双引号引起的字符串,称为字符串的文字值,或简称为字符串。
我们可以用数组存储一个字符串或者用数组存储单个字符来表示一个字符串,如下图所示,但是可以看到显示效果,只是输出内容不同。我们可以通过断点监控来测试这段代码。
我们可以看到,保存字符串的数组中多了一个\0,而保存单个字符的另一个数组仍然只有 a b c
如果给存储单个字符的数组加一个/0,结果会和字符串的输出结果一样吗?让我们试一试。
加上一个 \0 后,我们可以发现输出结果是一样的。
这是因为默认情况下,字符串以\0结尾。当我们使用printf打印时,程序会从前到后打印,直到找到\0才停止。所以由于输出arr2时没有默认\0,程序会一直打印,所以输出了内存中的一些脏数据。
\0本身是字符串的结束符号,是一个转义字符,不作为字符串的内容。也不算字符串长度。
2.转义字符
除了像\0这样的转义字符,C语言中还有其他的转义字符。
\t
水平方框字符
\n
换行运算符
\ddd
Ddd代表三个二进制八位数。
\xdd
Xd代表两个十六进制数字。
我们来看看不同转义字符的实现效果。
我们可以看到,当你输入\t,系统会留下一段优势,长度相当于一个tab键。
当字符串中间有\n时,系统不会直接输出,而是作为换行符。如果要输出一个\t,应该在\t前再加一个,如下图所示。
在上图中我们可以看到,当我们要输出一个字符\101时,系统并不会直接输出\101,而是输出a,此时系统会将\101视为转义字符,输出结果就是八进制和十进制对应的ASSIC表中的值。
回车,同样,系统会输出ASSIC表中对应十六进制和十进制的值。请注意。
要求读者只需在日常使用的ASSIC表中记忆以下常用值即可。
十进制
性格;角色;字母
48
0
65
A
97
a
3.sizeof运算符
Zeof是计算变量的长度。上面使用的strlen是计算的字符类型的长度,sizeof计算的单位是字节。比如上图中定义了一个int类型变量,int类型为4字节,那么输出结果为4。
Sizeof最常用于计算数组的长度。我们先计算整个数组占用的字节数,然后除以一个元素占用的字节数,最后就会得到数组的长度。
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。