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

问个C语言的有关问题

2012-05-30 
问个C语言的问题main(){ char *ptr ” Cisco Systems”*ptr++printf(“%sn”,ptr)ptr++printf(“%sn”,ptr

问个C语言的问题
main() 
{ char *ptr = ” Cisco Systems”; 
*ptr++; 
printf(“%sn”,ptr); 
ptr++; 
printf(“%sn”,ptr); 


Answer:Cisco Systems 
isco systems 

怎么解释?

[解决办法]
“ Cisco Systems\0”。。这是内存中的顺序,ptr指向这段字符串的开始位置。ptr++之后指向空格后C之前的那个位置。ptr再 ++之后指向C之后。。输出从ptr指向的位置指向末尾的\0
[解决办法]
有什么问题吗,都很正常的吧
[解决办法]
这有什么问题吗?你没有改变” Cisco Systems”的内容,
只是改变了ptr指向的地址而已,这本来就允许的
[解决办法]
首先这个代码里有错误“”应该是"",n应该是\n,如下

C/C++ code
main()  { char *ptr = " Cisco Systems"; *ptr++;  printf("%s\n",ptr);  ptr++;  printf("%s\n",ptr);  }
[解决办法]
main()
{ char *ptr = ” Cisco Systems”;
*ptr++; //取*ptr的值,然后指针加1,ptr指向字符C
printf(“%sn”,ptr); //打印从字符C开始的字符串
ptr++; //指针加1,ptr指向字符i
printf(“%sn”,ptr); //打印从字符i开始的字符串
}
字符串“ Cisco Systems”是以空格开始的,LZ没注意到?

热点排行
Bad Request.