我正在盡我所能返回一個具有特定值的指針。雖然,我不明白爲什麼我會比平常多得多。我問了幾個人,我被告知我得到一個子字符串?爲什麼我會返回一系列指針返回類型的字符?
問題:我輸入單詞hotdog。 我期望在索引[2]處返回一個指針。相反,我得到了chars狗。這是爲什麼?我將如何獲得索引[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;
}
爲什麼你期望指數[2 ]? GetValueAtIndex使用偏移量3,這將是索引[3],並且「熱狗」的第四個字母是'd',所以我期望輸出爲'狗' –