指针2
字符串的引用方式
在c程序中,字符串是存放在字符数组中的。想引用一个字符串,可以使用下面两种方式。
1.用字符数组存放一个字符串,可以通过数组名和下标引用字符串中一个字符,也可以通过数组名和格式声明“%s”输出该字符
例:11-1,定义一个字符数组,在其中存放字符串“I love Shiyanlou!”,输出该字符串和第10个字符。
编程如下:
int main()
{
char string[]="I love Shiyanlou!";
printf("%s\n",string);
printf("%c\n",string[9]);
return 0;
}
运行结果:
I love Shiyanlou!
i
2.用字符指针变量指向一个字符串常量,通过字符指针变量引用字符串常量
例11-1,通过字符指针变量输出一个字符串
编写代码:
int main()
{
char * string="I love Shiyanlou!";
printf("%s\n",string); //这里为什么不用*string,因为在在c语言中只有字符变量,没有字符串变量
return 0;
}
运行结果:
I love Shiyanlou!
对字符指针变量string初始化,实际上是把字符串第一个元素的地址赋给指针变量string,使string指向字符串的第一个字符。 有人误认为string是一个字符串变量,以为在定义时把“I love Shiyanlou!”这几个字符赋给该字符串变量,这是不对的。在c语言中只有字符变量,没有字符串变量。 在11-2以下语句中:
printf("%s\n",string); %s是输出字符串时所用的格式,在输出项中给出字符指针变量名string,则系统会输出string所指向的字符串第一个字符,然后自动使string加1,使之指向下一个字符,再输出该字符......如此直到遇到字符串结束标志'\0',因此再输出是能确定输出的字符到何时结束。