编程论坛
注册
登录
编程论坛
→
C语言论坛
数组的大小问题
奇数层
发布于 2022-09-09 09:06, 874 次点击
只有本站会员才能查看附件,请
登录
为什么会这样呢?我的arr1不是只有两个元素在里面吗?
2 回复
#2
apull
2022-09-09 09:13
c的字符串以'\0'结尾。
因此arr[3]实际上是arr[3]={'a','b','\0'}
而arr1则缺少'\0',在用%s输出的时候会一直读取内存,直到遇到'\0'才会停止。
#3
rjsp
2022-09-09 11:26
apull 说得对,我只是补充一下
程序代码:
#include
<stdio.h>
int
main(
void
)
{
char
a[
3
] =
"
ab
"
;
char
b[
2
] = {
'
a
'
,
'
b
'
};
printf(
"
%s\n
"
, a );
printf(
"
%.2s\n
"
, b );
printf(
"
%.*s\n
"
,
2
, b );
}
1