将字符串文字分配给数组

时间:2016-12-27 22:35:06

标签: c

这样做是不明确的行为?

char *a = "hello";
char b[] = "abcd";
a = b;

我的编译器不会发出警告,并发出最大警告级别。

1 个答案:

答案 0 :(得分:10)

这里没有UB。您只是重新指定一个指针指向数组起始地址。

请注意,您实际上并未修改a指向的值,仅a本身,a是正常的char *