1
17
out关键字
能够
由编译器暗示,但我的理解是C团队决定
|
2
10
编译器确实知道,您可能不知道。这是一种让您知道正在传递的参数可能会在传递给它的函数中发生变化的方法。 |
3
6
这与编译器所知道的无关,而是要确保开发人员意识到这个调用可以并且将改变变量x的值。 这其中有很多根源于C++,其中引用值不需要调用站点监视器。看C++调用是不可能的,并且确切地知道它会做什么。C++中引用和参数传递的参数在语义上有很大的差异。 |
4
2
是的,编译器可以解决这个问题,但是这样您就知道它将修改您正在传入的变量。 C语言有很多我称之为安全网的东西,它们明确地告诉程序员正在发生的事情。几个例子是:
|
5
1
http://msdn.microsoft.com/en-us/library/t3c3bfhx(VS.80).aspx “out关键字导致引用传递参数。这与ref关键字类似,只是ref要求在传递变量之前对其进行初始化。要使用out参数,方法定义和调用方法都必须显式使用out关键字。“ 由于datetime.typarse不需要初始化odate,因此必须传递out关键字。 |
6
0
好吧,我不是专家,如果我搞砸了,有人能纠正我吗? 有两种方法可以将参数传递给C函数:按值和按引用。这里最大的区别是,修改函数内部的参数是否会修改用于调用它的变量。这不是我相信编译器自己决定的事情。 由于您希望odate是从调用者传入并更改的变量,所以您希望它通过引用传递。 另一个问题是是否应该初始化它。C喜欢捕捉未初始化时使用变量的情况,因为这几乎总是一个错误。在这种情况下,您可能只需声明要传递的内容,并使用typarse()给它第一个值。这是一种完全合法的技术,因此编译器应该允许这种技术。这是另一件事,我不相信编译器是正确的。(我假设编译器还检查以确保out参数在用于typarse()之前已初始化)。 所以,“out”有两个目的。它确定参数是通过引用传入的,并且应该在函数内部对其进行初始化。这两者都不能由编译器决定。 |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |