【发布时间】:2021-11-26 23:21:24
【问题描述】:
#include <stdio.h>
int main()
{
char c;
c='z';
// Pointer to char
char *d;
d=&c;
printf("%c",*d);
// char pointer
char *d1="karthick";
printf("%s",d1);
return 0;
}
我已经声明了指向 char 和 char 指针(字符串)的指针。我可以看到它们的声明方式相同,那么它们在功能上有何不同?
【问题讨论】:
-
指针可以指向单个值或值数组。字符串只是
char的数组,以空字符结尾。 -
pointer to char和char pointer是一回事。在注释// char pointer之后,您可以编写d="karthick"; printf("%s",d);,代码将生成相同的输出。区别在于printf格式字符串:"%c"与"%s"。%c表示您只想看到指针指向的一个字符。这适用于d和d1。%s表示您想查看指针指向的字符串。这不适用于d,因为d不指向字符串。总之,d和d1都是 char 指针,但d1指向一个字符串,d不是。