求问一个关于c语言指针问题

char* s = "hello";的详细解释,大神们发出自己的高见吧

char* s = "hello";
分开看:
char *s;//定义一个字符指针
s = "hello";
//赋值
//该指针首地址指向字符串的第一个位置,s[0]='h' s[1]='e';就这个意思
//输出printf("%s",s);输出字符串,自s指向的首字母一直输出至字符串结束hello
//输出printf("%c",s);输出字符,自s指向的首字母输出即h
给你个图看看效果:
图片说明

在常量存储区保存了一个字符串数组,hello\0。在堆栈上定义一个字符指针指向'h'所在的地址。