学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 18 12
发新话题
打印

结构体的初始化

回复 10# 的帖子

C只有传值这一种传参方式?
为什么我们老师说还有地址传递.
比如说数组?
我秀我自己

TOP

传址其实也是传值=传地址值
只是稍微特殊一点
所以有时候会特意提出来说

TOP

引用:
以下是引用 StarWing83 在 2008-5-9 03:23 的发言:

你确定??
a的类型是char[10],绝对不是char*。在数组传参的时候,a会自动退化为const char*,然后再传值给char*。所以看起来好像传给函数的时候,和char*是一样的。但是char[10]和char*有着本质的不同!
顺便说一下因为C只 ...
表述可能不是很准确,我的意思只是想说明a.name是个地址,更准确的说应该是char[]而不是char[10],其实主要楼主能明白就好。
“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!

TOP

引用:
以下是引用 qinxinhai 在 2008-5-9 13:38 的发言:

C只有传值这一种传参方式?
为什么我们老师说还有地址传递.
比如说数组?
数组 指针 按地址传递 都属于传参 (这样就有了形参和实参)
------...-.-..-...-----........-------.......----.....------....||- - !

TOP

C只有传值一种方式。C++有传值和引用两种方式。
传址和引用区别在于。引用变量和原变量完全相同,你对引用变量做的任何事情都和对原变量做的效果一样。而传址,下面有个例子:
char* StrCpy(char* dest,const char* source)
{
    while(*dest++ = *source++);
    return dest;
}

这里,dest是传址,但是照样可以把dest当作普通局部变量使用(这里是自加),而对原指针无影响。如果是传引用,那么自加过后,原指针的值就会发生改变了。
应该说,就是因为传值,所以才有了形参和实参的本质区别。而如果只是传引用的话,形参和实参是完全相同的。

引用上面某一楼的发言:传址是特殊的传值,所以才特别加以说明。

[ 本帖最后由 StarWing83 于 2008-5-10 05:43 编辑 ]
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

StarWing83   解答的很好,这种精益求精的态度值得我好好学习。。。

TOP

回复大家

首先感谢大家对我的帮助,但我个人觉得这个是非常简单的东西,貌似你们的讨论离开了我的主题了吧??貌似我不是在问你们值的传递方式,我只是问某个方法为什么不行而已,你们讨论了那么多好象太离谱了吧??
在虚拟的世界中寻找目标。

TOP

9#已经给出完美回答了,LZ看答案要仔细……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

 18 12
发新话题