小编Pap*_*ane的帖子

需要帮助来理解我书中的错误示例的含义

所以这是代码:

#include <stdio.h>

int main() {
    char str1[] ="Hello", str2[20] ="Hi";
    char *p ="Hello", *s ="Hi";
    str1 = "Adieu";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我的书给出了这个原因

error, constant pointer cannot change
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到错误:

error: assignment to expression with array type
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我的书这么说?,指针从哪里来的?

这本书是Yashavant P. Kanetkar 的Let us C 第 18 版(问题发布时的最新版本),以防您需要参考。

c compiler-errors

5
推荐指数
1
解决办法
85
查看次数

为什么 ++y 部分没有执行?

所以这是我提出的问题,我需要告诉输出:

\n
#include <iostream>\nusing namespace std;\nint main()\n{\n    int x = 10;\n    int y = 20;\n    if(x++ > 10 && ++y > 20 ){\n    cout << "Inside if ";\n    } else{\n    cout << "Inside else ";\n    }\n    cout << x << \xe2\x80\x9c \xe2\x80\x9c << y;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

给出的答案是Inside else 11 20我与编译器检查过,这是正确的答案,但根据我的说法,答案应该是Inside else 11 21

\n

为什么会出现这种情况?为什么 ++y 部分不执行?

\n

我也尝试过 y++ 我仍然得到相同的答案。

\n

c++ if-statement post-increment logical-and

-1
推荐指数
1
解决办法
94
查看次数