我正在学习C++指针。我的老师提到这*((int*)A + i * n + j)是线性化符号的另一种方法A[i][j]。我尝试在这个 main 函数中使用 2x4 2D 数组来测试它。
int main()
{
int** A = new int* [100];
for (int i = 0; i < 2; ++i)
{
A[i] = new int[100];
}
//assign value
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 4; ++j)
cin >> *((int*)A + i * 4 + j);
//cin >> A[i][j]; //if I do this instead of the line …Run Code Online (Sandbox Code Playgroud) 我只是在摆弄这个函数,不知何故回文返回 74。我正在使用 Visual studio 2022。它是否应该不返回任何内容并捕获编译器错误,因为在下面的情况下永远不会返回 false?
bool palindromes(string str) {
if (str.length() == 0 || str.length() == 1) return true;
if (str[0] == str[str.length() - 1])
palindromes(str.substr(1, str.length() - 2));
else
return false;
}
int main()
{
cout << palindromes("lol");
}
Run Code Online (Sandbox Code Playgroud)