为什么要为指针返回类型返回一系列字符?
Why do I return a series of a chars for a pointer return type?
我正在尽力返回具有特定值的指针。虽然,我不明白为什么我得到的字符比平时多。我问了几个人,我被告知我得到了一个子字符串?
问题:我输入了热狗这个词。 我希望在索引[2]处返回一个指针。虽然相反,我得到了炭狗。为什么?我怎么会只得到索引[2]?我正在考虑取消引用它,但是我在使返回类型工作时遇到问题。
我无法更改函数的返回类型或参数。
#include <iostream>
char * GetValueAtIndex(char * const c, int index);
void ReadString(char * c, int length);
int main()
{
const int size = 10;
char ma[size];
char * pointer = ma;
ReadString(ma, 20);
std::cout << GetValueAtIndex(pointer, 3) << std::endl;
system("pause");
}
void ReadString(char * c, int length)
{
std::cin.getline(c, length);
}
char * GetValueAtIndex(char * const c, int index)
{
return c + index;
}
修改函数以返回值而不是指针:
char GetValueAtIndex(char * const c, int index){
return *(c + index);
}
或者只是取消引用函数返回的指针:
std::cout << *GetValueAtIndex(pointer, 3);
当您有一个char*
指针时,如下所示:
char* p = "Hotdog";
并将该p
发送到std::cout
它将被视为指向(a(C 样式字符串的第一个字符的指针并按此打印。C 样式字符串以