当前位置: 代码迷 >> C语言 >> 问下函数调用
  详细解决方案

问下函数调用

热度:137   发布时间:2007-09-02 19:40:46.0
问下函数调用
我看到一些函数调用时形参和实参都只是一个常量,不是指针,那为什么也能发生值的传递?
什么时候可以不用指针??

搜索更多相关的解决方案: 函数  指针  常量  形参  

----------------解决方案--------------------------------------------------------

不用指针是值传递,用指针是地址传递.


----------------解决方案--------------------------------------------------------
C里面只有值传递,使用指针是传递地址值



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
----------------解决方案--------------------------------------------------------
我想知道怎么样才能可以不用指针,来达到改变值的目的?
我看到一些程序不用指针的!
----------------解决方案--------------------------------------------------------

应该不会吧,如果不调用指针的话,只能通过返回值的方式传回调用函数来付给需要改变的值。


----------------解决方案--------------------------------------------------------
以下是引用编程比卡超在2007-9-2 22:11:40的发言:
我想知道怎么样才能可以不用指针,来达到改变值的目的?
我看到一些程序不用指针的!

全局变量可以.
还一种是C++的引用.


----------------解决方案--------------------------------------------------------
以下是引用andyzhshg在2007-9-2 22:40:06的发言:

应该不会吧,如果不调用指针的话,只能通过返回值的方式传回调用函数来付给需要改变的值。

那就是只能改变一个值?
----------------解决方案--------------------------------------------------------
六楼的说了一种情况,那就是全局变量可以。
比如:
#include <stdio.h>
int a;
int main (void)
{
void fun (void);
a = 1;
printf ("调用函数fun()之前a = %i\n", a);
fun ();
printf ("调用之后a = %i\n", a);
return 0;
}

void fun (void)
{
a = 2;
}

这样在函数fun()中对a的改变就可以带到main()中了。
不过全局变量在实际编程中要少用慎用,因为它容易引起程序混乱。
用返回值的方法理论上只能返回一个值,但你可以返回一个结构体啊。比如你可以定义
stuct {int a, int b, ....} data
然后再函数中返回data 类型的数据,它里面可以包含几个值啊。
不过你用这些返回值的话要用对结构体的特殊处理方法了。
还有一点,结构体要在调用函数和被调用函数之外定义,因为两个函数都会用到它。


[此贴子已经被作者于2007-9-3 3:14:08编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案