首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教这个C语言程序段的输出是什么?并请解释一上原因

2012-08-02 
请问这个C语言程序段的输出是什么?并请解释一下原因main{int nchar y[10] baskchar *x yn strl

请问这个C语言程序段的输出是什么?并请解释一下原因
main
{
int n;
char y[10] = "bask";
char *x = y; 
n = strlen (x);
*x = x[n];
x++;
printf ("%s",x);
}

[解决办法]
*x = y;这一句指针指向了y[10] 这个内存区域,现在指针x所指的值为"bask"

*x = x[n];把x[4]的值也就是 结束符号 赋值给了*x所指地址的值,也就是说 现在指针x所指的内存中的值为
" ask" 空的那个是结束符,

然后x++也就是指针向前移动,或者可以理解为现在的指针指向的是b[1]的位置,
所有打印结果是ask

你可以查看一下b[]的值你就会发现 你打印的结果是空,因为b[0]已经变成一个结束符了

热点排行