c语言的简单问题,求解答

为什么printf那里一个输出的是数组元素,一个输出的是地址图片

对字符数组来说,各字符内存地址是 连续 的。
当使用%s格式字符串,并赋给数组 首地址 &str[0],会打印出该字符数组代表的字符串。

如果想打印单个字符,请用 %c

如果想打印内存地址,请用 ** %p**

注意理解回答中标粗的部分,printf函数详细使用方法可查阅文档。

如果对您有帮助,请采纳答案好吗,谢谢!

在printf中,当你加上&符号时,他输出的是str[0]这个数所在的地址
当你不加上&符号时,他只是把str数组中第0个数输出出来

&这个符号是取地址的,不是用来寄存对象的

&取的是数组中的地址,str[0] 是第0个数的地址

记住就行了,不知道咋解释

&是取地址符,所以输出的是地址,str[0]访问的是第一个数组元素

&是用来取地址的,所以加上&输出是地址,不加是数组值