C语言数组初始化

C语言数组初始化转载博客代码编译运行环境:VS2017+Win32+Debug1.字符数组的初始化方式C语言中表示字符串有两种方式,数组和指针,字符数组是我们经常使用的方式。变量的定义包括指明变量所属类型、变量名称、分配空间以及初始化。可以看出,变量的初始化是变量定义的一部分。除了const变量需要显示初始化以外,其它变量如果在定义时未显示初始化,编译器会为变量以默认…

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

转载至
这里

代码编译运行环境:VS2017+Win32+Debug


1.字符数组的初始化方式

C语言中表示字符串有两种方式,数组和指针,字符数组是我们经常使用的方式。变量的定义包括指明变量所属类型、变量名称、分配空间以及初始化。可以看出,变量的初始化是变量定义的一部分。除了const变量需要显示初始化以外,其它变量如果在定义时未显示初始化,编译器会为变量以默认值进行初始化。变量的赋值和初始化有着本质的区别,字符数组也是如此,具体见博主的另一篇博客:认识初始化

1.1逐个字符初始化

当定义一个字符数组时,可以采用逐个字符初始化的方式:

char str[10]={ 'h','e','l','l','o'};
   
   
   
  • 1

当显示指定的字符不足字符数组的长度时,编译器将剩余字符置为空字符’\0’。

1.2字符串常量来初始化字符数组

在C语言中,将字符串作为字符数组来处理,因此可以使用字符串来初始化字符数组。

char str[]={
    
    "hello"};
   
   
   
  • 1

也可以省略花括号。

char str[10]="hello";
   
   
   
  • 1

不及字符数组长度时,剩余字符置为空字符’\0’。因此,我们不难得出,当为一个字符数组初始化为空字符数组的做法有如下几种:

char test1[256]="";
char test2[256]={
    
    ""};
char test3[256]={
    
    0};
char test3[256]={
    
    '\0'};
   
   
   
  • 1
  • 2
  • 3
  • 4

2.字符数组的赋值

当为已经完成定义的字符数组赋值时,不能采用类似于初始化的方式为字符数组赋值了。如下语句是错误的:

char str[10];       //已经完成定义(包括编译器默认的初始化)
str={
    
    'a','d','s'};  //错误
str="abc";          //错误
str={
    
    0};            //错误
   
   
   
  • 1
  • 2
  • 3
  • 4

错误的原因是字符数组名代表字符数组的收地址,不可修改,不能作为左值。左值的概念见博客:认识左值与常引用

2.1逐个字符赋值

(1)for循环的方式。

char str[10];
for(int i=0;i<sizeof(str):++i)
    str[i]='\0';
   
   
   
  • 1
  • 2
  • 3

(2)使用memset()赋值,较for循环高效率,建议使用。当然为字符数组置空应该在初始化时完成,不应该再多次一举。

char str[10];
memset(str,0,sizeof(str));
   
   
   
  • 1
  • 2

2.2拷贝赋值

利用已有的字符串,通过memcpy,strcpy或者strncpy等函数实现拷贝赋值,参考代码如下:

char str[10];
char str2[]="hello";
memcpy(str,str2,sizeof(str2));
strcpy(str,str2);
strncpy(str,str2,strlen(str2)+1);
   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5

参考文献

[1]C语言字符数组如何初始化?

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

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

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


相关推荐

  • 【JAVA学习】单例模式的七种写法

    【JAVA学习】单例模式的七种写法

    2022年1月24日
    38
  • c++ bool类型函数[通俗易懂]

    c++ bool类型函数[通俗易懂]bool型函数指的是返回值为bool类型的函数,其调用方式和int型函数没有太大的区别。bool型变量的值只有真(true)和假(false)。bool可用于定义函数类型为布尔型,函数里可以有returntrue;returnfalse之类的语句。示例:#includeusing namespace std;bool cmp(int a,int b){    

    2022年6月12日
    59
  • PHP解决高并发问题

    PHP解决高并发问题我们通常衡量一个Web系统的吞吐率的指标是QPS(QueryPerSecond,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。那么,我们的Web系统的理论峰值QPS为(理想化的计算方式):20*500/0.1=100000(10万QPS)咦?我们的系统似乎很强大,1秒钟可以处理完10万的请求,5w/

    2022年5月31日
    31
  • 西天取经意义初探_show concern about

    西天取经意义初探_show concern about构建DirectShow应用程序  本章节描述构建DirectShow应用程序所需的头文件和库。WindowsSDK中提供了最新的DirectShow头文件和库。头文件    所有的DirectShow应用程序都需要Dshow.h头文件,一些DirectShow接口可能还需要额外的头文件。库文件    调试版和发布版都是用相同的.lib文件。 F…

    2022年10月12日
    3
  • JavaScript概要

    JavaScript概要

    2022年1月14日
    44

发表回复

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

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