请教这段C程序执行后数组中存有哪些元素?

[复制链接]
查看11 | 回复4 | 2009-3-13 09:24:50 | 显示全部楼层 |阅读模式
main ( )
{char s[6];
int i;
strcpy(s,"abcde");
scanf("%s",s);
puts(s);
}
若输入boy,将输出boy。但此时s数组中是存有哪些元素呢?是'b''o''y''\0''\0''\0'还是是'b''o''y''\0''e''\0'?也即执行scanf后原来的值中那些未被覆盖的是否会被置为NULL?

回复

使用道具 举报

千问 | 2009-3-13 09:24:50 | 显示全部楼层
当函数执行到strcpy(s,"abcde"); 这条语句时:s包括:“abcde\0”字符串数组要在结尾自动加上一个‘\0’;当执行到这里scanf("%s",s);输入boy时,你的s数组又重新重新赋值啦!所以里面的值应该是 是“boy\0”。清楚啦?...
回复

使用道具 举报

千问 | 2009-3-13 09:24:50 | 显示全部楼层
这个问题,不应该问的 数组的元素,你把它输出不就知道了 main ( ) { char s[6]; int i; strcpy(s,"abcde"); scanf("%s",s); puts(s); for(i=0;i<6;i++)printf("\n%d",s);/* 输出数组元素,对照ASCII码表,就明白了 */ ...
回复

使用道具 举报

千问 | 2009-3-13 09:24:50 | 显示全部楼层
是'b''o''y''\0''e''\0'...
回复

使用道具 举报

千问 | 2009-3-13 09:24:50 | 显示全部楼层
boy正解...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行