右图的程序a的初始化赋值仍然是字符串,所以它的输出也是正确的。而b的初始化使b成为一个“字符数组”,它的最后没有字符串结束符,系统也不会主动加上。
站在用户的角度思考问题,与客户深入沟通,找到禄丰网站设计与禄丰网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖禄丰地区。
数组长度是20,而字符串长度是3,隐含的\0不算在字符串长度中。
综合来讲,第1种方法相对于第2种方法,造成了存储空间的浪费情况。
1 字符串。C语言的字符串是用字符数组表示的。约定以\0(ascii码0)作为结尾标记。对于字符串类的字符数组,可以用string.h中的strcmp函数进行比较。
c语言中没有字符类型,都是通过字符串数组实现字符串的操作,字符串数组的末尾一定是以‘/0’结束,标志字符串结束。
定义字符数组的方法,与定义整数数组或浮点数数组并无二致,都是完全一样的。
右图的程序a的初始化赋值仍然是字符串,所以它的输出也是正确的。而b的初始化使b成为一个“字符数组”,它的最后没有字符串结束符,系统也不会主动加上。
数组长度是20,而字符串长度是3,隐含的\0不算在字符串长度中。
这样就看出区别了,数组长度不一样,一个是4因为会自动添加一个结束符,一个是3不会添加结束符。
这是字符数组的初始化的两种形式,但是不能给字符数组赋值。如果s是指针,则可以用第二种方式让指针指向字符串常量。