字符数组初始化为空

字符数组初始化为空字符数组初始化为空1.总结起来有以下三种方式:2.分析3.结论1.总结起来有以下三种方式:(1)charstr[10]=””;(2)charstr[10]={’\0’};(3)charstr[10]=‘\0’;2.分析第(1)(2)种方式是将str数组的所有元素都初始化为’\0’,而第(3)种方式是只将str数组的第一个元素初始化为’\0’。如果数组的si…

大家好,又见面了,我是你们的朋友全栈君。

1. 总结起来有以下5种方式:

#define STR_LEN      1023

(1) char str[STR_LEN + 1]="";
(2) char str[STR_LEN + 1]={'\0'};
(3) char str[STR_LEN + 1];
	str[0] = '\0';
(4) char str[STR_LEN + 1];
	str[0] = 0;
(5) char str[STR_LEN + 1];
	memset(str, 0 ,sizeof(str));

2. 分析

第(1)(2)(5)种方式是整体清0了整个缓冲区,效率较低;
如果数组的size非常大,那么这三种方式将会造成很大的开销。

而第(3)和第(4)种方式是只将str数组的第一个元素初始化为0,效率高;

3. 结论

  1. 效率高,使用3、4初始化;
  2. 规范,建议使用5初始化(memset)
    因为有过用3/4的方式初始化,导致后面字符未初始化,而是随机值,正好使用了这些值,打印出来也是乱码导致。

4. 扩展:

4.1 不使用 szName[0] = ‘0’,使用szName[0] = 0

szName[0] = '0' ;        // Warning 4195
Possible confuse  digit '0'  or  zero-terminate '\0'  or  letter 'O'
//混淆数字0 和 字符串结尾字符 \0 ,建议直接使用 0 即可

4.2 空字符串判断

推荐用法:

if (0 != pcUserName[0])          //  推荐:安全 可靠

错误用法:

if (0 == strlen(pcUserName))
	Warning 4170 Function 'strlen' is unnecessary or duplicate

if('0' == pcUserName[0])
同上
Possible confuse  digit '0'  or  zero-terminate '\0'  or  letter 'O'
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161094.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安全U盘市场分析_安全U盘

    安全U盘市场分析_安全U盘**定义:**采用授权管理、访问控制、数据加解密等机制,实现对全盘或部分数据加密保护、授权控制及限制分发等功能。另外,自带的网络监控系统可以随时监测U盘所在网络的状态,实现外网阻断。有效防止U盘交叉使用,阻止U盘木马和病毒危害。从根本上杜绝了U盘泄密的途径,净化了U盘的使用环境。通用功能:1.数据透明加解密采用专用智能控制与存储芯片实现软硬件相结合的数据加密技术,在写入与读出过程中实时进行加…

    2025年10月11日
    2
  • CentOS 5.8 Zimbra邮件系统安装与配置

    CentOS 5.8 Zimbra邮件系统安装与配置

    2021年5月11日
    128
  • PyTorch安装最全流程

    PyTorch安装最全流程本文介绍基于Anaconda环境以及PyCharm软件结合,安装PyTorch深度学习框架。1.Anaconda安装下载链接:https://www.anaconda.com/1.1点击Next1.2点击同意1.3点击Next1.4选择目标文件夹,点击下一步1.5将Anaconda加入到系统变量安装成功后,在CMD中检查Anaconda时候加入到环境变量中。1.6单击启动AnacondaPrompt创建虚拟“房间”通过conda创建一个名为:pytorch.

    2022年6月24日
    73
  • 如何开启默认共享(win7默认共享文件夹位置)

    对于默认共享不知道你了解多少,反正留着是个隐患,现在唯一的办法好象只能做个bat文件进行删除.命令如下:netshareipc$/deletenetshareadmin$/deletenetsharec$/deletenetshared$/deletenetsharee$/delete本人运行了这个BAT现在想恢复高手指点?推荐答案DameWareminiremo…

    2022年4月17日
    56
  • ocker nginx 配置反向代理和负载均衡[通俗易懂]

    ocker nginx 配置反向代理和负载均衡

    2022年4月2日
    42
  • 情商的研究

    情商EQ认识与提高情商(情绪、意志、性格、行为习惯组成的商数)情商(EmotionalQuotient)通常是指情绪商数,简称EQ,主要是指人在情绪、意志、耐受挫折等方面的品质,其包括导商(LQ)等。总的来讲,人与人之间的情商并无明显的先天差别,更多与后天的培养息息相关。它是近年来心理学家们提出的与智商相对应的概念。从最简单的层次上下定义,提高情商是把不能控制情绪的部分变为可以…

    2022年4月9日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号