int k=0;
void fun(int m)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main( )
{ int i=4;
fun(i++); printf("i=%dk=%d\n",i,k);
} 为啥第二个k=5
全局变量的值会变吗?
答案:3 悬赏:60 手机版
解决时间 2021-01-04 13:59
- 提问者网友:浩歌待明月
- 2021-01-04 05:56
最佳答案
- 五星知识达人网友:胯下狙击手
- 2021-01-10 05:02
当程序执行fun(i++)时,此时fun(int m)中实参m的值是4,在printf函数中有k++,此时k值是4,所以打印的值是k,然后再将k++;所以在main函数中的k变成了5。
k++和++k是不一样的。所以你要是改成printf("m=%dk=%d",m,++k);那么在一开始的打印中,就会显示k值为5
k++和++k是不一样的。所以你要是改成printf("m=%dk=%d",m,++k);那么在一开始的打印中,就会显示k值为5
全部回答
- 1楼网友:你哪知我潦倒为你
- 2021-01-10 07:22
.........语句太不规范。。。看不来。。
再写一遍吧。。
- 2楼网友:酒醒三更
- 2021-01-10 06:02
简单的说,在一个程序中任何位置都能用的变量就是全局变量。
要想改变它的值,很简单,就是给它赋新值。以vb为例,例如:
public a as int
a=0
/这是定义一个变量,并赋初值。
在程序中用到a时,可以赋值(例如:a=10)那么就能改变它的值,这个改变的值是会影响整个程序的(无论有多少个子程序,都会被影响到)。
如果要再改变它的值,那么就要重新赋值。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯