需要解释C输出吗
可能重复:需要解释C输出吗,c,pointers,C,Pointers,可能重复: 其输出为a。看到了,但我觉得输出应该是b,因为c=+*p。 任何人都可以解释输出的原因吗?当然,这是未定义的行为。任何事情都有可能发生 您试图修改字符串文字,这是非法的 例如,如果你这样做了 char c = *p; ++c; 您将看到正确的输出 p的实际类型应该是const char*,在这种情况下,您会得到一个编译器错误。当然,这是未定义的行为。任何事情都有可能发生 您试图修改字符串文字,这是非法的 例如,如果你这样做了 char c = *p; ++c; 您将看到正确的输
其输出为
a
。看到了,但我觉得输出应该是b
,因为c=+*p
。
任何人都可以解释输出的原因吗?当然,这是未定义的行为。任何事情都有可能发生 您试图修改字符串文字,这是非法的 例如,如果你这样做了
char c = *p;
++c;
您将看到正确的输出
p
的实际类型应该是const char*
,在这种情况下,您会得到一个编译器错误。当然,这是未定义的行为。任何事情都有可能发生
您试图修改字符串文字,这是非法的
例如,如果你这样做了
char c = *p;
++c;
您将看到正确的输出
p
的实际类型应该是const char*
,在这种情况下,您会得到一个编译器错误。Augh!比我快一秒钟:)@Habeeberwad你可以这么看,是的。但是++'a'
也是非法的。啊!比我快一秒钟:)@Habeeberwad你可以这么看,是的。但是++'a'
也是非法的。