C/C++字符串指针的有关问题

C/C++字符串指针的问题
char str[] = "hello";
printf("%x,%x\n",&str,&str[0]);
printf("%c,%c\n",*&str,*&str[0]);
谁能解释一下这个输出吗
指针 C/C++ 字符串

------解决方案--------------------
第一行输出str数组第一个元素'h'的地址值,两个是一样的
第二行:str是数组名,可以退化为指针来表示第一个元素的地址,*&str属于多此一举,和str一样,但是你使用的是%c按照字符来输出,显然超出了char的范围,接下来那个显示'h',同样*&连用数多此一举,所以就是str[0],也就是'h'