轻功水上漂zz 2024-03-23 18:21 采纳率: 59.4%
浏览 2
已结题

关于c语言指针数组得小问题

字符串本身是一个地址,定义一个指针数组,指向字符串。输出字符串,%s不用取地址。那么为啥是这样的结果嘞?a不是数组名嘛,就是地址呀

img

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-23 18:21
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    输出结果的原因是数组名本身就是一个指向数组首元素的指针,所以不需要使用取地址符号。 例如下面的代码可以输出"hello world":
    char str[] = "hello world";
    char *p[1] = {str};
    printf("%s", p[0]);
    

    解释一下,首先定义了一个字符串str,然后定义了一个指针数组p,指向str。最后使用格式化字符串输出p[0],即str。因为p[0]实际上等同于str,不需要使用取地址符号。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月23日
  • 已采纳回答 3月23日
  • 修改了问题 3月23日
  • 创建了问题 3月23日