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'的字符串长度)