c语言基础|| 字符串及字符数组的相关易错内容

目录

一、"\0"对字符串与字符数组的重要性

二、strlen与sizeof有什么区别?

三、含转义字符、求字符串长度

四、static修饰变量及函数时的相关易错内容


一、"\0"对字符串与字符数组的重要性

 

代码结果运行如下:

其中数组arr1 与数组arr3的打印结果正确,而arr2的打印结果出现了异常。这就是使用"\0"造成的差异。我们知道"\0"是字符串的结束标志,当遇到\0时字符串才算作结束。在计算字符串的长度时"\0"不算作字符串的内容。

本题中数组arr1为字符串其本身末尾隐藏着一个\0;而在数组arr3中由我手动添加了一个\0,使得代码能够在遇到\0时自动结束,而arr2数组由于没有\0,打印时计算机找不到尾,只能打印出一个随机值,当在内存中”偶遇“一个”\0“时它才停止。


二、strlen与sizeof有什么区别?

结论:事实上二者没有什么关联

总结如下:

1、strlen是一个包含在string.h的字符串库函数,用于求字符串长度(也只能对字符串求长度)。它计算的是”\0“之前的所有字符的个数。(不包括"\0")

2、sizeof是一个操作符,它计算变量、数组类型的大小,单位是字节byte.

结果如下:

 注意:

虽然‘\0'在库函数中不算数,但它实际存在且占了空间。因而在计算所占空间sizeof时,必须把“\0”,

作为一个字符元素参与其中。


 三、含转义字符、求字符串长度

引例:

如果要在屏幕上打印一个目录:c:\code\test.c

如果我们这样写代码

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

结果如下:

 原因很简单:\t作为转义字符,表示“水平制表符”,不在是字面意义的表示


 总结:

介绍了字符串与数组中最易从错的三个考点。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

{Hello World}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值