char str[20]; str=“I love China!”; (错误)
char str[20]=“I love China!”; (正确)
因为str地址是常量
而 char *cp; cp=“I love China!”; (正确)
因为cp的地址是变量
你说的这个char c[] = "I am happpy"是初始化,不是赋值。
字符数组不能直接赋值的,书上的是定义,不一样的,赋值应该用strcpy()函数
char a[],b[];
a=b //不正确,这才是赋值
赋值和初始化是不一样的