char ch[10]={"yhping"}; char ch2[10]={'y','h','p','i','n','g'}; char *str = "yhping"; 区别是

本文探讨了C语言中字符串和字符数组的区别,包括不同类型的声明方式及其对strlen和sizeof运算符的影响。解释了如何使用字符串初始化字符数组及字符指针,并详细分析了这些操作的具体含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

char ch[]={"yhping"};

char ch2[]={'y','h','p','i','n','g'};

char *str = "yhping";

          区别是什么。

   (1) strlen测的是实际是字符串中的实际长度不包括‘\0’,sizeof测的是计算机实际分配的空间大小。

  (2) char ch[10] ="yhping"

 是用字符串来使字符数组初始化,而不是用单个字符作为数组的初值strlen值为6,sizeof值为7因为还有‘\0’的值。

 (3)   char ch2[]={'y',h'',p','i','n','g'};

   用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符,strlen值为6,sizeof值也为6,  

   (4)char *str = "yhping";

  表示定义了一个char*型变量str,用字符串常量初始化,C语言对字符串常量是按照字符数组来处理的,,在内存中开辟

一个字符数组空间来存放该字符串常量,但是这数组是没有名字的,所以不能通过数组名来引用,只能通过指针变量来引用。对于字符指针str 初始化,实际上是把字符串的第一个字符的首地址赋给指针变量,使str 指向字符串第一个字符然后使str自动加一指向下一个字符。


strlen值为6,sizeof值为4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值