问一下,为什么输出的时候总会跟着这个
字符组越界了,不过不是删{},{}对你字符组无影响。
在C语言中,字符串后面会自动接字符串结束符'\0',所以你的name字符组实际上是'j' 'h' 'u' 's' 't' 'i' 'n' '\0'总共8个字符
address字符组实际上是'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' '\0'总共11个字符,所以你在定义的时候应该定义字符组大小为8和11。
只有在字符串后面才会自动接'\0'!!!你单个输入字符作为字符组元素是不会接'\0'的。
你可以用sizeof("jhustin")输出,他的值应该是8,因为sizeof()读取的是实际占的内存大小
strlen("jhustin")输出的是7,因为strlen()函数返回的是'\0'之前的所有字符数量
越界了,把{}删掉
回复Rotch的:来,你解释为啥报错,按你的说法我去掉了吧,为啥还报错
回复小白小白你好菜的:
这么写是最标准的;
像你那么赋值 {"123456"} 只是在运行上没有问题,实际上是把多余的值顺序排到其他地址上。你那么做只是运行结果没问题,但是原理你完全弄错了。我希望你弄懂C语言最基本的语法,不要纸上谈兵,多去开发开发项目,练好基本功