在 C 语言中,数组名可以被解释为指向数组首元素的指针。也就是说,当你声明一个数组时,实际上也创建了一个指向该数组首元素的指针。
在代码中,char *str = "I love C program";
声明了一个指针变量 str
,并将其初始化为指向字符串常量 "I love C program" 的首地址。这里的 str
就是一个指向字符数组的指针。
在循环中,使用 str[i]
来访问数组元素,这个语法实际上是通过指针 str
加上偏移量 i
来访问数组中的不同元素。因为数组名可以被解释为指向数组首元素的指针,所以 str[i]
实际上等同于 *(str + i)
。
因此,当遍历输出字符串中的每个字符时,使用的是指针和数组的结合。指针 str
指向了字符串数组的首地址,通过指针的偏移来访问数组中的不同元素。
#include<stdio.h>
#include<string.h>
int main()
{
char *str = "I love C program";
int i,length;
length = strlen(str);
for(i=0;i<length;i++)
{
printf("%c",str[i]);
}
return 0;
}