char a[80] = "happy"; 这种写法 C语言 中是对的。你说内存中是乱码,那输出结果正确吗?a[80] = scanf("%s","happy"); 这个写法,系统不会提示错误,但是 你输出试试,这种写法 不能输出 字符串。因为 scanf 函数 第二个 参数 要求是 地址。char a[80]; scanf("%s",a); printf("%s\n",a); 这种写法是可以的。
char a[80] = "happy"没有问题,你输出一下看看