static定义变量使其只会被定义一次,所以在结束函数后不会被清除大型薯,结果还是保留当前的数据。
for循环调用了两次fun函数,所以输出了两次(%4d的4是让输出的数字至少保留4个空位,不足补空格)
具体运行情况简要说明租旦一下,
程序开始->定义了k,a,为a赋值1->滚者进入for循环(k=0,k<2成立)->先调用fun函数(传值a,int x=a)->静态定义z=3,y=0(使其在fun函数结束时不会被清除数据->y,z自加一,并返回x+y+z的值->跳回main.函数,格式化输出返回值(□□□6)->k自加一->判断k<2,成立->再执行fun函数->z和y被定义了(静态),所以z和y保持上次的值4和1->返回x+y+z的值->返回main函数,格式化输出fun的返回值(□□□8)->k自加一->k<2,不成立->跳出fir循环->结束
结果是0235不是235;do
while();的用法食先运算后判断,
第一次运算时,k=5;case后的常量值没有与5相等的,模枯所以n=0,运算后k=4;判断k>0&&n<5是成立的,成立执行第二次,
第二次运算时,k=4,case后的常量值有与4相等的,所以,n=2,运算后k=3;判断k>0&&n<5是成立的,成立执行第三次,
第三次运算时,k=3,case后的常量值有与3相等的,所以,n=3,运算后k=2;判断k>0&&n<5是成立的,成立执行第四次,
第四次运算帆明时,k=2,case后的常量值有与2相等的,但是不态码告运算,所以没有n输出,运算后k=1;判断k>0&&n<5是成立的,成立执行第五次,
第五次运算时,k=1,case后的常量值有与1相等的,所以,n=5,运算后k=0;判断k>0&&n<5条件不成立,所以直接跳出循环,运算结束;
希望对你有所帮助,呵呵,加油。
1、先说运算顺序,是从上到下,一句一句的租仔算的。从4行开始,赋值a1.b6.c3。搜局
计算5行,q=a+b+c=1+6+3=10
计算6行,a++,a=a+1=2
计算7行,++b,b=b+1=7
计算8行,z=a+b+c=2+7+3=12
执行9行,打印zabq分别是12.2.7.10
注意弊漏汪第9行代码有错误,双引号内的
z=……q=……a=……b=……顺序不对
应该是
z=……a=……b=……q=……
2、asc码既能用八进制,也能用十进制表示。
只是在printf语句中,由转义符反斜杠"\"引导的asc码,必须用八进制数字表示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)