读书人

问个C语言的有关问题

发布时间: 2012-05-30 20:20:04 作者: rapoo

问个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没注意到?

读书人网 >C语言

热点推荐