【发布时间】:2018-07-18 07:57:30
【问题描述】:
考虑在C中定义一个char指针。那么指令:
char *str
str = "Hello World!"
没有产生任何错误。假设我对 C 和指针的了解勉强可以接受,为什么这条指令是正确的?不应该是:
str = &("Hello World!");
【问题讨论】:
-
@Jabberwocky
"Hello world"是一个char数组,在大多数情况下会衰减为一个指针,但可以与sizeof区分。 -
以上行肯定会产生多个错误。由于各种原因,这不是有效的 C,(旁注 - 短语:C 没有说明。你可能意味着语句,但第一行也不是语句。即使我们认为你只是忘记了分号。
标签: c pointers dereference