|
|
发表于 2012-7-20 19:12:10
|
显示全部楼层
- #include<stdio.h>
- int k=1; //全局变量k =1;
- main()
- {
- int fun(int k);
- fun(k);
- printf("%d\n",k);
- }
- int fun(int k) //你的fun 函数没有类型 编译器默认为int 类型
- {
- k++;
- k=k*6;
- return k; //所以必须返回一直值
- }
- ///////////////执行过程///////////////
- /* 你定义咯一个全局变量k =1 ; 然后执行到 主函数 因为你的函数是在 主 函数后面定义的
- 又 你在主函数主要调用 所以必须作声明 不然编译的时候会出现警告,你的主 函数 声明了
- fun 函数后 然后把k的值 当做实参 调用 fun 函数 , 然后执行fun函数 这时候形参k 接收 实参
- k 传过来的 值 注意 :实参K 与 形参 k 不是共占一段存储空间的 各自占用自己的存储空间
- 你采用的是值传递的方式 传递参数的 在执行函数的时候 形参k ++ 执行完后 形参k 的值 变为了 2;
- 实参k 的值 还是 1 应该你采用的是值传递的方式传递参数的 所以形参K的改变并不会影响带 实参k 的值
- 然后执行 k=k*6 这时候 形参K=12 但是实参K 还是=1的 执行完fun 函数后 你就打印了 实参K 的 值
- 实参K 的值还是1 所以你打印出来的结果为1 */
- ///////////////////////////////////
复制代码 |
|