天天看点

用指针存储字符数组表示字符串

通过实例来理解表示方法的含义。

源代码如下图所示。

用指针存储字符数组表示字符串

注视掉的前两行,要是释放了,编译之后会报错。*s1 表示的是个字符。

虽然为变量赋值时:

              char *s1 = "hello kitty.";

写法上像是把一串字符赋值给了 *s1 一样。但是赋值时的 * 表示 s1 的类型。

赋值语句的含义:

              s1 = "hello kitty.";

所以,通过函数输出指针表示的字符串时应该使用 s1 而不是 *s1 。同是输出时使用 *s1,也只是表示一个字符。所以语句:

              s1++;

表示把指向字符串的指针位置往后推。

第3行注视的语句准确表示了字符串的输出;未注视的输出语句准确输出了字符。

效果如下:

用指针存储字符数组表示字符串

从输出内容看,判断语句 if 的条件为 0 时执行的是 else 的执行语句。当 if 语句的条件不管是大于零还是小于零时,都会执行 if 语句的执行语句。

用指针存储字符数组表示字符串