-4
我有這樣的功能:爲什麼我不能提領和cout ++這個字符串用C
void strPointerTest(const string* const pStr)
{
cout << pStr;
}
如果我這樣稱呼它:
string animals[] = {"cat", "dog"};
strPointerTest(animals);
它返回的第一個元素的地址。所以我期待,如果我取消對它的引用,我會得到數組的第1個要素,但這樣做是這樣的:
void strPointerTest(const string* const pStr)
{
cout << *(pStr);
}
它甚至不會讓我編。我試過這個使用int而不是字符串,它的工作原理。有沒有什麼特別的字符串?我將如何檢索此函數中的字符串數組的元素?
編輯:
這裏有一個完整的例子,它不會在我結束編譯:
#include <iostream>
void strPointerTest(const std::string* const pStr);
void intPointerTest(const int* const pInt);
int main()
{
std::string animals[] = { "cat", "dog" };
strPointerTest(animals);
int numbers[] = { 9, 4 };
intPointerTest(numbers);
}
void strPointerTest(const std::string* const pStr)
{
std::cout << *(pStr);
}
void intPointerTest(const int* const pInt)
{
std::cout << *(pInt);
}
我不知道爲什麼downvote。我在尋求幫助,因爲它不會在我的結尾編譯。如果它在你的目的下工作並不意味着它也適用於我。我在尋求幫助,因爲我不知道發生了什麼。
的編譯錯誤是:
No operator "<<" matches these operands - operand types are: std::ostream << const std::string
你會得到什麼編譯器錯誤? – NathanOliver
請提供[mcve]。 – Barry
如果我嘗試運行您提供的代碼 - [無法重現](http://ideone.com/7U1rYm)。 –