字符数组的初始化与赋值 |
您所在的位置:网站首页 › 字符指针定义初始化方法 › 字符数组的初始化与赋值 |
代码编译运行环境:VS2017+Win32+Debug 原文链接 1.字符数组的初始化方式 C语言中表示字符串有两种方式,数组和指针,字符数组是我们经常使用的方式。变量的定义包括指明变量所属类型、变量名称、分配空间以及初始化。可以看出,变量的初始化是变量定义的一部分。除了const变量需要显示初始化以外,其它变量如果在定义时未显示初始化,编译器会为变量以默认值进行初始化。变量的赋值和初始化有着本质的区别,字符数组也是如此,具体见我的另一篇博客:认识初始化。 1.1逐个字符初始化 当定义一个字符数组时,可以采用逐个字符初始化的方式: char str[10]={ 'h','e','l','l','o'};当显示指定的字符不足字符数组的长度时,编译器将剩余字符置为空字符’\0’。 1.2字符串常量来初始化字符数组 在C语言中,将字符串作为字符数组来处理,因此可以使用字符串来初始化字符数组。 char str[]={"hello"};也可以省略花括号。 char str[10]="hello";不及字符数组长度时,剩余字符置为空字符’\0’。因此,我们不难得出,当为一个字符数组初始化为空字符数组的做法有如下几种: char test1[256]=""; char test2[256]={""}; char test3[256]={0}; char test3[256]={'\0'};2.字符数组的赋值 当为已经完成定义的字符数组赋值时,不能采用类似于初始化的方式为字符数组赋值了。如下语句是错误的: char str[10]; //已经完成定义(包括编译器默认的初始化) str={'a','d','s'}; //错误 str="abc"; //错误 str={0}; //错误错误的原因是字符数组名代表字符数组的收地址,不可修改,不能作为左值。左值的概念见博客:认识左值与常引用。 2.1逐个字符赋值 (1)for循环的方式。 char str[10]; for(int i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |