作业帮 > 综合 > 作业

指针移动的问题移动指针(经常加入到考试中其他题目综合考试)char *s=“meikanshu” while(*s){p

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/08 23:52:18
指针移动的问题
移动指针(经常加入到考试中其他题目综合考试)
char *s=“meikanshu”
while(*s){printf(“%c”,*s);s++;}
这个s首先会指向第一个字母m然后通过循环会一次打印出一个字符,s++是地址移动,打印了一个字母后,就会移动到下一个字母!
————————————————————————————————————————
以上是我照原文搬的,但是我负责的vc上运行不了,该改的改了,该加了也加了,同时那个while的判定条件也很奇怪.
1、你的第一句中少了分号
2、你里面的一些符号不是半角符号
3、while中的判定条件没问题,就是说在 *s 非零的时候就继续循环,而什么时候 *s 非零呢,就是在正好到了结束符的时候,也就是说你上面的字符串中字符全部输出后就正好到了这个字符串的结束符处,此时循环就结束了.
把下面的程序编译后运行下试试:
#include
main()
{
char *s="meikanshu";
while(*s){printf(“%c”,*s);s++;}
}
再问: 不行呀,不管是用vc还是vs都是一大堆错误
再答: 不好意思,我当时复制的你的代码,里面还有全角符号,下面的我都修改了,并且也编译通过了。 #include main() { char *s="meikanshu"; while(*s) { printf("%c",*s); s++; } printf("\n"); }
再问: 运行到最后是变成while('\0')这个吧,while('\0') 与 while(0) 是等价的吗
再答: 是等价的,因为 '\0' 的ASCII码就是0