总结: 字符串字面值初始化char数组或者char指针,不要添加\0空字符,若使用列表初始化cha数组或者char指针则需要手动添加\0。
在以下两中场合下,数组名并不是用指针常量来表示,就是当数组名作为sizeof操作符和单目操作符&的操作数时: 1、sizeof返回整个数组的长度,而不是指向数组的指针的长度。 2、取一个数组名的地址所产生的是一个指向数组的指针,而不是一个指向某个指针常量的指针。 &a后返回的指针便是指向数组的指针,跟a(一个指向a[0]的指针)在指针的类型上是有区别的。
string s("hello world");//编译器自动在字符串字面值后添加\0, 所以允许使用空字符结束的字符数组来初始化string对象或为string对象赋值使用getchar()输入单个字符,使用putchar()输出单个字符 使用gets()输入一行字符串(仅仅回车\n表示结束输入,空格制表符不表示结束输入)(要使用gets,需要先使用getchar接收整数后的换行符) 使用puts()输出一行字符串