【发布时间】:2020-08-20 03:23:48
【问题描述】:
我正在学习C中的数组。使用字符数组时,这两个语句有什么区别?
char my_char_array[] = {'M','y',' ','S','t','r','i','n','g'};
和
char my_char_array[] = "My String";
另外,如果我尝试将 my_char_array 的值打印到屏幕上,为什么会得到一些无法打印的字符(这发生在 my_char_array 被双向初始化的情况下)?
printf("Value of my_char_array[]:%s\n", my_char_array);
my_char_array[]的值:我的字符串╠╠╠╠╠╠╠╠╠╠╠
【问题讨论】:
-
第二个有一个额外的字节用于空终止符。 即第一个是未终止的,当您尝试使用需要空终止字符串的函数打印它时,您会得到未定义的行为。