通过实例来理解表示方法的含义。
源代码如下图所示。
注视掉的前两行,要是释放了,编译之后会报错。*s1 表示的是个字符。
虽然为变量赋值时:
char *s1 = "hello kitty.";
写法上像是把一串字符赋值给了 *s1 一样。但是赋值时的 * 表示 s1 的类型。
赋值语句的含义:
s1 = "hello kitty.";
所以,通过函数输出指针表示的字符串时应该使用 s1 而不是 *s1 。同是输出时使用 *s1,也只是表示一个字符。所以语句:
s1++;
表示把指向字符串的指针位置往后推。
第3行注视的语句准确表示了字符串的输出;未注视的输出语句准确输出了字符。
效果如下:
从输出内容看,判断语句 if 的条件为 0 时执行的是 else 的执行语句。当 if 语句的条件不管是大于零还是小于零时,都会执行 if 语句的执行语句。