怎么理解这句话?(来自网易虚拟社区)

kingeyetiger 2002-09-25 11:14:32
除非调用函数明确地要求被调用函数修改调用函数环境中的参数变量,否则用传值调用给函数传递参数。
这句话,怎么理解呀?谁帮帮我……
...全文
29 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjd163 2002-09-25
  • 打赏
  • 举报
回复
另外
C语言可以通过内存传递函数的数据。
dsangvei 2002-09-25
  • 打赏
  • 举报
回复
一般说来,这是在C环境下用的。
void CalledByValue(int c)//传值
//你在调用它的时候,尽管在CalledByValue()中改变了c的值,但你的调用程序
中的值仍然不变。
{
c=10;
}
void CalledByAdress(int* c) //传址
//当你调用了之后,不管你的调用程序中的值为多少,都会改成10。
{
*c=10;
}

在C++下:
void CalledByReference(const int &c) //引用,如果你不想在
你的子程序中改变它的值,请用const
{
c=10 ; //error,不能修改了
}

void CalledByReference(int &c) //引用,可以在被调用的程序中修改
注意,你的调用程序可能不知道的哟。
{
c=10 ; //能修改了
}

abbrdr 2002-09-25
  • 打赏
  • 举报
回复
當然,也可以傳地址啊!
ice1010 2002-09-25
  • 打赏
  • 举报
回复
就是传值和传引用的问题.
blh 2002-09-25
  • 打赏
  • 举报
回复
就是说你调用某个函数时,如果希望该函数修改你传递的参数,那么就用指针作为参数,否则就不要使用指针作为参数。
icecools 2002-09-25
  • 打赏
  • 举报
回复
补充:
void B(int& c)
{
c=4;
}
这样的话就不是传值而是传应用,在B(d)以后,d就是4了
cwanter 2002-09-25
  • 打赏
  • 举报
回复
C/C++函数调用默认采用传值方式:编译器通过为参数在栈中做一副本来传递参数。所以被调用函数改变的是形参的值,而不会改变实参的值。如果要改变实参的值,要使用传引用或指针的方式。
socketraw 2002-09-25
  • 打赏
  • 举报
回复
在一个函数中调用另一个函数
如果所传递的参数要求修改的话,就不能用传值方式传递
因为传值方式参数等那个被调用函数返回后是不会改变的
如果需要改变的话,可以用传地址、引用等方式
sandrowjw 2002-09-25
  • 打赏
  • 举报
回复
好象没什么意义呀,难道调用函数要求了,参数就不按值传递了吗?
参数按什么方式传递应该是看被调用函数的约定形式的吧,和被调用函数有关系吗?
skyfine 2002-09-25
  • 打赏
  • 举报
回复
如果你不想改变被调参数的值,那么你就用值传递。
max_welcome 2002-09-25
  • 打赏
  • 举报
回复
void A()
{
int d = 3;
B(d);
}
void B(int c)
{
}
意思是,虽然d最为参数传递给函数B,但B不能改变d的值。因为
编译器在接受参数时,其实是将他拷贝了一份
wgc 2002-09-25
  • 打赏
  • 举报
回复
传址调用和传值调用
NetBird_China 2002-09-25
  • 打赏
  • 举报
回复
up ice1010(Azrael)!
是值传递的问题
kof99th 2002-09-25
  • 打赏
  • 举报
回复
就是说你要修改参数的话,就不能用传值。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧