首页 > 编程知识 正文

c++定义字符串变量,c语言自定义函数调用数组

时间:2023-05-03 14:29:06 阅读:135776 作者:3059

技术干货第一时间送达!

过去的推荐

前面两篇文章分别介绍了和,今天我们一起来看看文字排列吧

字符数组

字符数组,顾名思义就是数组的元素类型为字符型的数组。 特殊之处在于数组元素是字符数组。 其定义的一般形式和注意事项与前面介绍的一般数组相似,但其中的类型说明符是char。 当然,类型说明符不仅可以是char,还可以是long、int等,但由于char类型只占用1个字节的大小,用long和int类型定义字符数组会浪费资源,因此通常使用char类型定义字符数组

一维字符数组

首先,让我们在下面的代码中看到一维字符数组的定义。

#include#define SIZE 20int main () longarr1) size )=(h )、(e )、(l )、) o )、)、(w )、) o )、) r; char arr2[SIZE]={ 'h '、' e '、' l '、' l '、' o '、' w '、' o '、' r '、' l '、' d '、'!' (; printf (长型字符数组消耗的内存大小为%dn )、sizeof(arr1); printf(char型字符数组消耗的内存大小为%d(n )、sizeof(arr2); 返回0; }

执行结果:

上面的代码定义了不同类型的字符数组以存储相同的字符。 可以看到,它们的内存大小相差很大,长类型的字符数组占用的内存大小是char类型数组的4倍。 由此可知,通过选择char型作为数组型,可以避免内存空间的浪费。 有关字符数组初始化的特征,请参见以下代码:

#include#define SIZE 20int main () {int i; char arr[SIZE]={ 'h '、' e '、' l '、' l '、' o '、' w '、' o '、' r '、' l '、' d '、'!' (; for(I=0; i SIZE; I ) {printf('%c ',arr[i]; }return 0; }

执行结果:

执行结果为“Hello World! ”,有几个空文字。 让我们看看上面代码中定义的arr数组。 数组的长度为20,初始化的字符元素的数量为12。 初始化的字符元素数量少于数组的长度,编译器在编译时为后面未初始化的数组元素分配“ 0”。 这是打印输出中包含空字符的原因。 打印时,也可以将数组中的元素“ 0”视为数组的结束标志。 示例:

#include#define SIZE 20int main () {int i; long arr[SIZE]={ 'h '、' e '、' l '、' l '、' o '、' w '、' o '、' r '、' l '、' d '、'!' (; for(I=0; arr[i]!=' '; I ) {printf('%c ',arr[i]; }return 0; }

执行结果:

此时的输出结果不包含空字符。 因为它巧妙地使用了字符数组的“ 0”标志。 当然,也可以用字符串常数初始化一维字符数组。 例如,以下内容:

#include#define SIZE 20int main () {int i; char arr[SIZE]={ 'hello world!' (; for(I=0; arr[i]!=' '; I ) {printf('%c ',arr[i]; }return 0; }

执行结果:

定义和初始化一维字符数组时,可以不指定长度。 使用字符常量列表和字符串常量初始化的结果有以下不同:

#includeint main () {int i; char arr1[]={ 'hello world!' (; char arr2[]={'h ',' e ',' l ',' l ',' o ',',',' w ',' o ',' r ',' l ',' d ','! " (; 用printf ('字符串常量初始化的arr1数组的长度为%dn ',sizeof(arr1); 在printf ('字符常量列表中初始化的arr2数组的长度为%dn ',sizeof(ARR2); 返回0; }

执行结果:

运行结果表明,这两种方法得到的数组长度不同,在使用字符串常量初始化字符串数组的过程中,在存储到内存中时会自动在字符串后面添加结束符“ 0”,因此得到的字符串数组长度为字符串常量的长度加1 使用字符常量列表方法初始化字符数组时,此方法定义的字符数组的长度为字符常量列表中的字符数,因为最后不会添加终止符。

【END】

如果你觉得这篇文章有用,请转发给更多人

随手点击“看”也是小编最大的支持

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。