所以这是代码:
#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 版(问题发布时的最新版本),以防您需要参考。
所以这是我提出的问题,我需要告诉输出:
\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
。
为什么会出现这种情况?为什么 ++y 部分不执行?
\n我也尝试过 y++ 我仍然得到相同的答案。
\n