字符数组初始化问题解法_字符数组和字符串的区别
在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.cn/184861.html原文链接:https://javaforall.cn
相关文章
- c++视频转字符画_c++字符数组转化为字符串
- c语言字符数组初始化的三种方式_c语言赋值字符串
- java 字符数组 合并_字符数组合并?c数组合并?java数组合并问题「建议收藏」
- C语言:字符数组的输入输出
- 嵌入式Linux驱动开发——字符设备驱动框架入门
- C/CPP结构中的字符数组和字符指针
- ASP数组排序_字符数组
- c语言字符数组的初始化的三种方式_字符数组用16进制初始化
- C-统计输入字符中的字母,数字,空格
- 【C 语言】字符串 一级指针 内存模型 ( 指定大小字符数组 | 未指定大小字符数组 | 指向常量字符串的指针 | 指向堆内存的指针 )
- C语言中的字符数组和字符串详解编程语言
- 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串详解编程语言
- 字符数组及其定义和初始化,C语言字符数组详解
- 掌握Oracle中字符编码的查询窍门(oracle查询字符编码)
- Oracle字符函数:完全指南及全面解析(oracle字符函数大全)
- Oracle: 创造智慧的力量(第一个字符oracle)
- Linux字符界面登录:探索计算机之美(linux字符界面登录)
- 利用 Oracle 筛选字符的方法(oracle过滤字符)
- 串快速破解Redis输出的字符串(解析redis输出的字符)
- 串Oracle中如何将字符串转换为数值(oracle中转化字符)
- Oracle中修改字符列的方法探索(oracle修改列的字符)
- Oracle数据库中的字符数组使用实例(oracle中的字符数组)
- 计算机字符编码的前世今生
- PHP一些常用的正则表达式字符的一些转换
- asp检测是否为中文字符函数
- javascript根据指定字符把字符串拆分为数组
- 利用json获取字符出现次数的代码
- 通过PHPcurrent函数获取未知字符键名数组第一个元素的值
- java全角、半角字符的关系以及转换详解