字符数组初始化问题解法_字符数组和字符串的区别

字符数组初始化问题解法_字符数组和字符串的区别在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:(1)chara[10]=””; (2)chara[10]={‘\0′}; (3)chara[10];str[0]=’\0’;第1,2种方式是将a数组的所有元素都初始化为’\0’,而第3种方式是只将str数组的第一个元素初始化为’\0’。如果数组的size非常大,那么前两种方式…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:

  • (1) char a[10]=””;
  • (2) char a[10]={‘\0’};
  • (3) char a[10]; str[0]=’\0′;

第1,2种方式是将a数组的所有元素都初始化为’\0’,而第3种方式是只将str数组的第一个元素初始化为’\0’。如果数组的size非常大,那么前两种方式将会造成很大的开销。

所以,除非必要(即我们需要将str数组的所有元素都初始化为0的情况),我们都应该选用第3种方式来初始化字符串数组。

几个错误的实例

 int arrayl[5]={1,2,3,4,5,6}; //error-初始化值个数多于数组元素个数

2     int array2[5]={1,,2,3,4}; //error:初始化值不能省略
3     int array3[5]={1,2,3,}; //error:初始化值不能省略
4     int array4[5]={}; //error:语法格式错误

初始化值的个数可少于数组元素个数。当初始化值的个数少于数组元素个数时,前面的按序初始化相应值, 后面的初始化为0(全局或静态数组)或为不确定值(局部数组)。

2.初始化字符数组

  初始化字符数组有两种方法,一种是:
    char array[10]={“hello”};
  另一种是:
    char array[10]={‘h’,’e’,’l’,’l’,’\0′};
  第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用,’\0’补上。另外, 这种方法中的花括号可以省略,即能表示成:
    char array[10]=“hello”;
  第二种方法一次一个元素地初始化数组,如同初始化整型数组。这种方法通常用于输入不容易在键盘上生成的那些不可见字符。
  例如,下面的代码中初始化值为若干制表符:
    char chArray[5]={‘\t’,’\t’,’\t’,’\t’,’\0′);
  这里不要忘记为最后的,’\0’分配空间。如果要初始化一个字符串”hello”,那为它定义的数组至少有6个数组元素。
  例如,下面的代码给数组初始化,但会引起不可预料的错误:
    char array[5]=”hello”;
  该代码不会引起编译错误,但由于改写了数组空间以外的内存单元,所以是危险的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • mysql tinytext_给学生提供什么类型的输入

    mysql tinytext_给学生提供什么类型的输入除了CHAR和VARCHAR字符类型时,MySQL为我们提供了TEXT具有更多的功能,其类型CHAR和VARCHAR不能覆盖。的TEXT是用于存储可以采取从1个字节到4GB长格式文本字符串是有用的。我们经常会TEXT在新闻站点中找到用于存储文章正文的数据类型,在电子商务站点中会找到产品描述的数据类型。与CHAR和不同VARCHAR,在TEXT为列使用类型时不必指定存储长度。另外,在检索或插入文本数据(如CHAR和)时,MySQL不会删除或填充空格VARCHAR。请注意,TEXT数据未存储在数据库服

    2022年8月13日
  • HashMap数据结构(hashmap数据结构图)

    Java综合/**  *@authorannegu  *@date2009-12-02  */Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。1、hashmap的数据结构要知道hashmap

    2022年4月17日
  • 基于python的情感分析案例_约翰肯尼格的悲伤词典

    基于python的情感分析案例_约翰肯尼格的悲伤词典情感分析是大数据时代常见的一种分析方法,多用于对产品评论的情感挖掘,以探究顾客的满意度程度。在做情感分析时,有两种途径:一种是基于情感词典的分析方法,一种是基于机器学习的方法,两者各有利弊。在此,笔者主要想跟大家分享基于python平台利用情感词典做情感分析的方法。本文主要参考https://blog.csdn.net/lom9357bye/article/details/79058946这篇文章,在此文章中,博主用一句简单的语句“我今天很高兴也非常开心”向我们清楚的展示的利用情感词典做情感分析的方法,这

    2022年8月23日
  • 洛谷p2669_洛谷首页

    洛谷p2669_洛谷首页洛谷 2577 [ZJOI2005]午餐——序列dp

    2022年4月20日
  • PCI设备驱动程序「建议收藏」

    PCI设备驱动程序「建议收藏」PCI总线是现在非常流行的计算机总线,学会它的驱动设计方法很重要。相信曾经想学习PCI总线驱动的人有这么一个经历,就是去看那些讲解PCI总线驱动的书籍和资料的时候,会被里面繁杂的内容所击败,又是什么配置空间又是什么枚举的,还没开始真正的去写PCI的驱动,到这里就已经开始打退堂鼓了。其实,只要你认真下去,虽然有些东西看不明白,但是对于你写PCI的驱动来说,似乎“不那么重要”。因为,Linux内核对P…

    2022年10月25日
  • vs2008 sp1怎么安装_vs2003

    vs2008 sp1怎么安装_vs2003vs2005的英文版sp1补丁431M中文版补丁sp1已经集成了VS2005WebApplicationProject VS2005的SP1足有430M,快有VS2003SP1的三倍大了!而且,安装起来是同样的慢,慢得让人以为是不是装不下去了(噢,我现在正在安装……)。  简单看了看VisualStudio2005ServicePack1说明:  1、支持新处理器(

    2022年10月5日

发表回复

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

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