C 中的 Pointer To Char 和 Char Pointer 有什么区别?

问题描述 投票:0回答:1

在这个C程序中,我声明了Pointer To Char和Char Pointer(string)。我可以看到他们的声明方式是相同的,那么他们的行动有何不同?

#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;
}
c pointers char
1个回答
1
投票

d
d1
完全一样。 两者都指向一个 single
char
对象;只是在
d1
的情况下,单个
char
对象是 string 中的第一个字符,而
d
指向不属于较大字符串的单个字符:

    char        char *
    +---+       
 c: |'z'| <---  d
    +---+
     ...
    +---+
    |'k'| <---- d1
    +---+
    |'a'|
    +---+
    |'r'|
    +---+
    |'t'|
    +---+
    |'h'|
    +---+
    |'i'|
    +---+
    |'c'|
    +---+
    |'k'|
    +---+
    | 0 |
    +---+
© www.soinside.com 2019 - 2024. All rights reserved.