qq_53827862
2021-04-05 00:26
采纳率: 100%
浏览 32

C++指向字符串的指针,指向的到底是什么?

如图。names[i]指向的是地址还是字符串?

比如 输出names[0]显示Zara Ali,那么names[0]指向的是这个字符串的地址还是字符串?书上写是地址,那为什么不显示这个字符串的地址呢?

  • 收藏

2条回答 默认 最新

  • 小白小白你好菜 2021-04-05 10:09
    已采纳

    指向的是这个字符串的地址。但是只针对于你的元素是char *类型

    char a[3];

    scanf("%s", a);

    printf("%s", a);

    你这里的a就是地址啊,你输出的时候就是告诉这个函数你的地址是多少,然后他把这个地址上的东西输出来

    这里仅对char *类型,即字符串类型成立,单个字符或者其他的,都不成立

    刚好你的name字符组的元素是字符串类型

    (个人见解)

    已采纳该答案
    打赏 评论
  • lemon-l 2021-04-05 00:46

    我个人理解,names[i]类型是const char *,也就是说它是一个字符指针,这个指针指向一个字符,这个字符可以是单个字符也可以是一个字符串首个字符。你这种初始化方式的话names[i]就是一个字符指针,指向一个字符串首个字符,可以说它指向一个字符串。char **类型才是指向一个指向字符串地址的指针。names+i就是一个指向字符串地址的指针。

    打赏 评论

相关推荐 更多相似问题