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

char ch[10]={"yhping"};//字符串数组,用字符串常量进行初始化 不能改变大小或重分配 但可改变内容。在栈上申请空间,将常量内容复制进来,所以是局部变量。它等价于char ch[10]={'y','h','p','i','n','g','\0'};系统自动在后面加了一个'\0',作为字符串结束的标志,后3个元素为空字符

char ch2[10]={'y','h','p','i','n','g'};//字符串数组,它是用单个字符作为字符数组的初值,char ch2[10]={'y','h','p','i','n','g'}开辟了10个空间,前6个元素为'y','h','p','i','n','g',后4个元素为空字符。

char *str = "yhping";  // 表示先定义一个字符串常量,并将其地址赋给str,str指向字符串常量,不能修改 。str指向该常量地址

        strlen(ch)==6(返回字符串的大小

strlen(str)==6(返回字符串的大小

sizeof(ch)==10(数组的大小

sizeof(str)==4(指针字节)

sizeof("yhping")==7(包含字符'\0'的字符串长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值