下列程序的输出结果为。

下列程序的输出结果为。,第1张

x=948/100%4=9%4=1

y=7/3=2

y*=4+2/3=2*(4+0)=8

z=(x++)*(--y)=1*7=7

此时x=2; y=7

printf("%d\n",(x,z))逗号运算,结果是z的值

于是输出7

这个程序的输出结果是9。

这个程序相当于下面的程序,省略掉③和④一对花括号

程序分析

③句和④不会被执行,所以,z的值是9。

判断③和④隐含一个花括号的方法是,else与最近的if语句配对。

有什么问题请留言。

本程序输出的结果是:a = ‘A’, b = 'b'。

也就是说实参b的值加了1,而a的值则没变,为什么呢?

首先,我们说一下b的值为什么会加1:在函数fun中的第一个形参是一个指针变量,fun(&b,a)中&b的意思是取b的地址,而*c在这里其实就是b的值,这里的*c = *c+1是对b的值直接进行 *** 作的,因此,b的值会变。

而a的值不变,是因为在C语言中,实参向形参的数据传递方向是单向传递,也就是说,只由实参传给形参,而不能由形参传回给实参。除非我们加个返回值,如

int fun(char *c, int d)    //带返回值得函数

{

  *c = *c+1

  d = d + 1

  return d    //将加1后的d值返回

}

void main()

{

  char a='A',b='a'

  a = fun(&b,a)    //将返回的值赋给a

  printf("%c,%c\n",a,b)

}

这个程序关系到C语言的两个内容,1、指针  2、函数的参数和函数的值 ,建议找一本C语言程序设计的书阅读这两个章节,一切都迎刃而解。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11498501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存