联合体里面的所有成员共用同一块儿空间, 如果你的是32位机器的话, b = 0x12345678 占4个字节, 根据你的输出的c=78, 则你的是小端机器,
0x12345678 每两个数字占一个字节, char c 只占一个字节, 所以只会取b内容的一个字节的内容, 你的是小端机器, 所以输出为78, 如果是大端的, 则输出为12,
大哥题都不对。
int
a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
按程序运行来讲吧。
第一句不说了
第二句为逗号表达式。
c=(a-=a-5)
给c赋值,把a-=a-5的结果赋给c;
(a-=a-5)=(a=a-(a-5));
把a=0;代入得a=5;
进而(a-=a-5)的值为5;
c=5;
接下来执行(a=b,b+3);
这里面又有逗号表达式。
a=b;因b=0;故a=0;
b+3;不对任何变量赋值,相当于空语句;
综上所述:a=0;b=0;c=5
论述完毕
第一行printf,m++是先输出原m值12,后进行++为13,++n先++为35,输出35,故第一行输出结果为12 35;
第二行printf,n++也是输出上面改变后的n的值35,再++,++m先++为14(上面m已改变为13,再++),输出14,第二行输出为35 14
以上,如此,希望看得明白
Option Explicit
'Private Function fact(ByVal n As Integer) As Integer '这是默认传值,数值不会返回
Private Function fact(ByRef n As Integer) As Integer '这是默认传址,数值会返回
fact = 1
Do While n > 0
fact = fact n 'n=4时,14 3 2 1=24
n = n - 1
Loop
End Function
Private Sub Form_Click()
Dim sum As Integer, i As Integer
For i = 4 To 1 Step -1 'i 按 4 3 2 1 顺序执行
sum = sum + fact(i)
Next
Print "Sum="; sum '默认传址,返回24 '默认传值,返回33
End Sub
输出:817
int func(int a,int b)
{
static int m=0,i=2; //静态变量,只初始化一次,第二次调用为上一次的结果值
i+=m+1; //第一次 i=2+0+1=3 第二次 i=3+8+1=12
m=i+a+b; // m=3+4+1=8 m=12+4+1=17
return(m); // 返回8 返回17
}
int main ()
{
int k=4,m=1,p;
p=func(k,m);printf("%d",p);
p=func(k,m);printf("%d",p); //这里少个"
}
以上就是关于关于c语言以下程序运行后的输出结果是全部的内容,包括:关于c语言以下程序运行后的输出结果是、执行以下程序后,其输出结果是( )。 int a=0,b=0,c=0; c=(a-=a-5)、在C语言中,以下程序运行输出的结果是什么,怎么算的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)