char *s1="A";是正确的?

char *s1="A";是正确的?

为什么这样可以用printf("%c",*s1)输出,但是如果char *s1='A';就不能用那个输出

指针要指向地址,“A”是字符串,也是地址,’A’是字符,不代表地址

整型和字符型是互通的,他们是在内存中存储的本质是相同的,只是存储的范围不同而已,整型可以是2字节,4字节,8字节,而字符型只占1字节。而字符串类型则和字符类型不一样。

http://c.biancheng.net/view/1323.html  可以参考一下这个文章,希望对你有帮助。