C#输出问题!

laomengzi 2010-08-02 09:19:33
static void Main(string[] args)
{
int[] a = new int[1];
a[0] = 10;
Console.WriteLine(a);
}
为什么输出的结果是 System.Int32[]
这个怎么理解呢?
...全文
259 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fingternest 2010-08-02
  • 打赏
  • 举报
回复
static void Main(string[] args)
{
int[] arr = new int[10];
unsafe
{
fixed (int* ptArr0 = &arr[0])
{
int* ptArr = ptArr0;
for (int i = 0; i < arr.Length; ++i)
{
arr[i] = i;
}
for (int i = 0; i < arr.Length; ++i)
{
Console.WriteLine("{0} @ Addr:0x{1:X}", *ptArr, (uint)ptArr);
ptArr++;
}
}
}
}

注意在:项目-> 属性页->生成 里的 “允许不安全代码” 给勾上
Peter200694013 2010-08-02
  • 打赏
  • 举报
回复
此处a是一个数组,引用类型,直接输出a的,则会输出a的类型,即System.Int32[]
Peter200694013 2010-08-02
  • 打赏
  • 举报
回复
Console.WriteLine(a[0]);

for(Int32 item in a)
Console.WriteLine(item);
laomengzi 2010-08-02
  • 打赏
  • 举报
回复
是啊,首地址,就在内存中的地址!
边城的刀声 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wanyeyinfeng 的回复:]

数组类型并没有重写ToString()方法,会默认使用从Object继承的ToString()方法,故得到类型名。
[/Quote]
是这样的
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wanyeyinfeng 的回复:]
数组类型并没有重写ToString()方法,会默认使用从Object继承的ToString()方法,故得到类型名。
[/Quote]

的确如此
leiziaitudou 2010-08-02
  • 打赏
  • 举报
回复
Console.WriteLine(a[0]);
首地址?
laomengzi 2010-08-02
  • 打赏
  • 举报
回复
谢谢各位,如果想输出数组的首地址改如何写呢??
吟风 2010-08-02
  • 打赏
  • 举报
回复
数组类型并没有重写ToString()方法,会默认使用从Object继承的ToString()方法,故得到类型名。
mythad 2010-08-02
  • 打赏
  • 举报
回复
a为int数组。使用foreach。
porschev 2010-08-02
  • 打赏
  • 举报
回复
你a是int类型的数组。。

你输出他就会提示你是int类型的数组啊,即:System.Int32[]

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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