先知道他们的区别和长度大小关系 见下

char a[]="12345"和

发不了重复字符,以图片展示

img

回答了的话,正确的会给采纳,万分感谢!

"1" 双引号会在隐式自动在字符末尾添加空字符, "1" 等于 '1'和'\0' 字符的组合, 虽然计算长度的函数会忽略空字符, 但是他们实际占用的内存还是有区别的, 第二个形式的字符串串会转换为'1''\0''2''\0''3''\0''4''\0''5''\0''\0', 占用的内存大, 但是计算的长度变小, 因为遇到空字符会结束

你a数组里面到底是'1'还是"1",这区别很大
你到底是故意的还是打错了

字符占一个字节的内存空间。字符串占的内存字节数等于字符串中字节数加1。
char a【】=“123456” 应该是字符串自动转化为字符数组,变为a={‘1’,‘2’,‘3’,‘4’,‘5’,‘\0’}
a【】={“1”,“2”,“3”} 应该变成了 a={‘1’,‘\0’,'2',''\0}

字符'a'和字符串"a"虽然都只有一个字符,但在内存中的情况是不同的。
'a'在内存中占一个字节,可表示为: a
"a"在内存中占二个字节,可表示为: a \0
如有帮助,望采纳