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

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

关注让阿豪来帮你解答,本回答参考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,不需要使用取地址符号。