Tom*_*tro 0 c pointers const char
为什么以下代码不发出警告?
与-Wall,-Wpedantic,-Wextra一起编译,并且没有一个发出警告。
int main()
{
const char *p;
char a[] = "hey";
p = a;
(void) p;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望收到某种警告,例如分配-Wdiscarded-qualifiers
你分配从一个char * 到一个const char *。这是安全的,因为您添加了const限定词,而不是将其删除。
如果您这样做:
char *p;
const char a[] = "hey";
p = a;
Run Code Online (Sandbox Code Playgroud)
然后,您将收到有关丢弃const限定符的警告。