
比如 case 'a'肢厅: putchar(*s+1)break
// 1. *s= 'a'
// 1. (*s='a')从case ‘a’开始执行一直到default,分别打印了4个字符*s+1~*s+4即bcde
2. *s= 'b'
// 2. (*s='b')从case ‘b’开始执行一直到default,分别打印了3个字符*s+2~*s+4即def
3. *s= 'c'
// 3. (*s='c'御含)从case ‘c’开始执行一直到default,分别打印了2个字符*s+3~*s+4即fg
#include<stdio.h>
int main()
{
char *s="abc"
while(*s)
{
switch(*s) // 1. *s= 'a'2. *s= 'b'3. *s= 'c'
{
case 'a':putchar(*s+1)// 1. (*s='a')从这里开始执行一直到default,分别打印了4个字符*s+1~*s+4即bcde
case 'b':putchar(*s+2)// 2. (*s='b')从这里开始执行一直到default,分别打印了3个字符*s+2~*s+4即def
case 'c':putchar(*s+3)// 3. (*s='c')从这里开始执行一直到default,分别打印了2个字符*s+3~*s+4即fg
default: putchar(*s+4)
}
s++
}
}
这个程序的败启输出结果是9。
这个程序相当于下面的程序,省略掉③和④一对花括号:
程序分析
③句和④不会被察培如执行,所以,z的值是9。
判断③和④隐含一个花括号的中指方法是,else与最近的if语句配对。
有什么问题请留言。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)