【发布时间】:2019-02-02 18:53:07
【问题描述】:
如果我有这个变量:
char *s = "house";
如果我在代码的其他部分将其引用为 *s 和 s 有什么区别?
【问题讨论】:
-
s是一个指针。*s是它指向的char。 -
将此视为“char* s”与“char *s”。它们是等效的声明,并且将“*”与类型分组以增加清晰度。那么问题是“char*”和“char”类型变量之间有什么区别?后面“*var”的含义会有所不同。
-
*s和s[0]是一回事,如果有帮助的话。在这种情况下,它们是h,直到/除非s被更改。 (h不应更改,并且根据您的 C 实现,可能无法更改,因为"house"是常量字符串文字。) -
@EdGrimm 那么如何将字符串称为所有字符,而不仅仅是第一个字符?
-
@LocTran
*s是内存 ats指向的地址。这不是地址本身。指针是地址。