如果 x 是一个指针,&x 与 x 有何不同?
How does &x vary from x if x is a pointer?
所以。。。我有以下代码:
int main(void)
{
const char *s="hello, world";
cout<<&s[7]<<endl;
return 0;
}
它打印"世界"。。。但是我不明白为什么:
int main(void)
{
const char *s="hello, world";
cout<<s[7]<<endl;
return 0;
}
只会打印"w"(我所更改的只是去掉了和号),但我以为那是"地址"运算符。。。这让我想知道你为什么需要它,它的功能是什么?
s[7]
是字符'w'
,因此&s[7]
成为字符'w'
的地址。当您将char*
类型的地址传递给cout
时,它会打印从该字符开始到字符串末尾的空字符的所有字符,即从'w'
开始继续打印字符,直到找到