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