指向char的指针vs c中的char指针


#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类型的指针(string)。我可以看出它们的声明方式是一样的,那么它们在功能上是如何变化的呢?

dd1完全相同。两者都指向一个单个char对象;只是在d1的情况下,单一char对象第一个字符在字符串,而d指向一个字符,并不是字符串的一部分:

char        char *
+---+       
c: |'z'| <---  d
+---+
...
+---+
|'k'| <---- d1
+---+
|'a'|
+---+
|'r'|
+---+
|'t'|
+---+
|'h'|
+---+
|'i'|
+---+
|'c'|
+---+
|'k'|
+---+
| 0 |
+---+

最新更新