大佬教程收集整理的这篇文章主要介绍了使用较小的字符串初始化char数组,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
char arr[8] = "abc";
有没有什么规定什么arr [4]可能是?我做了一些测试
Clang并且似乎数组中的剩余字符设置为null.
另外,char arr [8] =“”;每个字节为零.不知道这是否是编译器
方便,标准行为,纯巧合或错误.
void a() { char arr[8] = "abc"; /* breakpoint here,line 3 */ strcpy(arr,"1234567"); } int main() { a(); a(); return 0; }
调试器成绩单
Breakpoint 1,a () at str.c:3 3 char arr[8] = "abc"; (gdb) s Current language: auto; currently minimal 4 strcpy(arr,"1234567"); (gdb) p arr $1 = "abc\000\000\000\000" (gdb) c ConTinuing. Breakpoint 1,a () at str.c:3 3 char arr[8] = "abc"; (gdb) p arr $2 = "1234567" (gdb) s 4 strcpy(arr,"1234567"); (gdb) p arr $3 = "abc\000\000\000\000"@H_450_15@
arr [3]被初始化为0,因为终止0是字符串文字的一部分.
所有剩余元素都初始化为0 – ISO/IEC 9899:1999,6.7.8,21:
并且具有静态存储的char对象将初始化为0.
@H_450_15@ @H_450_15@以上是大佬教程为你收集整理的使用较小的字符串初始化char数组全部内容,希望文章能够帮你解决使用较小的字符串初始化char数组所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。