2013-08-13 回答
1.如果阁下写的是“<3”那么他的执行过程将是:i=1-->1<3成立-->调用hello_world()-->i++(即i=2)-->2<3-成立->调用hello_world()-->i++(即i=3)-->3<3不成立-->跳出 因此事执行两次,若是写为“<=3”问题就不一样了,因为3=3,因此3<=3是成立的,会再次调用hello_world(),即为3次。 2.应该没关系的吧……这里……还是说它这里把无值作为一个值来看待调用第二层无值函数……?……这个在下也看不太明白它要干什么…… 3.default是缺省处理,若输入的不是a、b、c中的任意一个时执行,阁下所指的自动执行时什么意思? 是说①输入a,输出: hello,world! pda is king 还是说②输入e,输出: pda is king 如果是②,那是它本来的功能;如果是①,那就是阁下在case:后面的复数语句外没有加“{}”的原因。(case:空格的问题……一般visualstudio的话会自动添加空格的吧……一般……不过在下也没试过case:直接写的……一般都会换行的吧……于是注意书写规范啊lz……) 4.three_hellos()和hallo_world()在声明的时候被规定为参数为空,因此()里面没有参数(应该说是不能有参数,函数调用时传递的参数必须要和函数声明是规定的数量、类型、位置完全一致,因而声明时无参数调用时有参数会报错的) 以上。 ------------------------------------------ 于是是否是阁下case后面语句没有复合起来,也就是说break语句实际上没有起到作用……?写成 case'a': { printf("hello, world!\n"); break; } case'b': { printf("hello,wulanchao!"); break; } case'c': { printf("hello,sya rin gan\n"); break; } default: { printf("pda is king\n"); break; } 也不行的么……?