【发布时间】:2009-07-14 19:07:46
【问题描述】:
我遇到了以下代码 sn-p 并需要预测输出。我的回答是 220,但被告知错误。谁能告诉我正确的输出,请解释原因。
using System;
class pointer
{
public static void Main()
{
int ptr1=0;
int* ptr2=&ptr1;
*ptr2=220;
Console.WriteLine(ptr1);
}
}
编辑: 谢谢大家的解释性答案。当且仅当上述代码块(这是 C# 代码,抱歉在问题中未提及它)被声明为非托管时,正确答案肯定是 220。感谢您的所有回答。他们每个人都非常有用且信息丰富。
【问题讨论】:
-
这是作为不安全代码处理的不安全吗?在 C/C++ 中应该是 220...
-
220,祝你功课顺利
-
这是带有不安全代码的 C#。但它的代码应该被包装在一个不安全的块中。
-
当您回答 220 并弄错时,显然期望的答案是它不构建 b/c,您不在 C# 允许使用此类指针的不安全上下文中。跨度>
-
+1 用于很棒的变量命名,ptr1 不是指针。