【问题标题】:How & makes a reference to a string variable in C++?如何在 C++ 中引用字符串变量?
【发布时间】:2018-10-01 20:25:54
【问题描述】:

我对在字符串中使用 & 字面量有点困惑。我看到以下两个代码的输出有很大不同:

#include <iostream>
using namespace std;
int main() 
{
    char st[]="This is a Sample String";
    cout<<st[0];
    return 0;
}

输出:T

#include <iostream>
using namespace std;
int main() 
{
    char st[]="This is a Sample String";
    cout<<&st[0];
    return 0;
}

输出:这是一个示例字符串

我知道 & 用作引用运算符以通过引用传递值。但我的问题是这里的实际工作原理。

【问题讨论】:

  • 字符“&”有几种不同的含义。应用于表达式的&amp; 运算符创建的是指针,而不是引用。您在引用类型中看到的&amp; 不是运算符。
  • 在您展示的示例中,&amp; 是“地址”运算符。它获取其操作数的地址,在这种情况下,操作数是st[0]&amp;st[0] 给出了st 中第一个字符的地址。 couts operator&lt;&lt;() 被重载以接受const char *,它将其解释为以零结尾的字符串的第一个字符的地址(这是st 包含的内容)。
  • @Peter 这应该是一个答案。
  • 谢谢@Peter。真的很有帮助。

标签: c++ string pass-by-reference


【解决方案1】:

Array of characters 在 C++ 中也称为 string。而在C++,如果你想打印字符串的起始地址,那么它不会打印字符串的起始地址,它会打印整个字符串。

C++中的运算符&amp;在不同情况下有不同的含义。而&amp; 的含义是由它的上下文(它在哪里使用的)决定的。

【讨论】:

  • 字符数组在 C++ 中也称为字符串。’ 值得商榷。对于大多数人来说,C++ 中的“字符串”是另一回事。
  • 你是对的,但对于初学者来说,基本信息是 engouh ......我不想混淆 sahilsharma811 ..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多