C#到底支不支持指针??? 以前::、.、和->操作符全都由.代替。C#可以用指针,据说用指针就超出了它的安全机制范围。好像它的类型安全机制不允许指针,不允许如直接存取内存等不安全的操作如果你不用类型安全,就可以用指针。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 A question that might come up is how to emulate function pointers when there are no pointers in C#.这句话摘自《Presenting C#》,好象是很明确的指出C#中没有指针吧 C#其实就是传统C++的阄割版。有点类似JAVA。 类引用是隐式指针,象C++的引用类型一样是安全的。显式指针只有在用unsafe标明的部分使用。 c#中可以用指针,但要放在unsafe{}里 的确!C#里面的.都把我搞晕了。C++里面的类的静态变量是用的ClassName::func()来引用,而在C#里面就是ClassName.func()我想这样可以减少程序员的错误。还是有一定的好处的,不然MS在设计时也不会这样做了。 可以在unsafe{}中使用,也可以定义不安全类: unsafe class A在不安全类里可以定义一些不安全方法和变量,但只能在不安全类内部使用,否则编译出错。还可以进行不安全编译: csc \unsafe wdong.cs 就是呀,换了个说法的。还是用的把,using System;class Test{ unsafe static void WriteLocations(byte[] arr) { fixed (byte *p_arr = arr) { byte *p_elem = p_arr; for (int i = 0; i < arr.Length; i++) { byte value = *p_elem; string addr = int.Format((int) p_elem, "X"); Console.WriteLine("arr[{0}] at 0x{1} is {2}", i, addr, value); p_elem++; } } } static void Main() { byte[] arr = new byte[] {1, 2, 3, 4, 5}; WriteLocations(arr); }}只不过使用了unsafe 以及fix object来标识罢了! 不是指针,是对象引用吧。和JAVA差不多啊。 Honney(!Honney) 说得对,没有指针,只有引用,类似java 我从来也不用指针,因为VB没有指针。但我还是可以做很多事情。不要依赖于指针,但其实..................C#有指针有指针有指针有指针有指针有指针有指针有指针有指针有指针!有真正的真正的真正的真正的真正的真正的真正的指针!看看楼上们辛苦的回答吧,怎么还搞不清楚,谁再说C#没有指针我就跟谁急 C#有指针,但指针最好少用,不然,戳到屁股怎么办? <摘自ANDERS回忆录 2001.5.28 99:99:99> WinForm程序如何检测自己卡死的情况???? 三层结构 datagridview问题 剪切图片如何写C# 初学者(。NET) Datagridview 回车键响应事件问题 一个关于数组for语句的问题,急! C#的坐标变换??如何转换设备坐标到通用坐标?? 如何使用在桌面程序中使用SQLServerCompact 有c#讨论群,加的找3323961,顶着有分~~~~~ 关于EXCEL判断的问题。 痛苦哇!装了两个月都没装上vs.net,帮帮我. 微软的第三张盘上win2k sp1是for英文版的,难道我要下载80mb的大东东么?
这句话摘自《Presenting C#》,好象是很明确的指出C#中没有指针吧
C++里面的类的静态变量是用的ClassName::func()来引用,
而在C#里面就是ClassName.func()
我想这样可以减少程序员的错误。还是有一定的好处的,不然MS在设计时也不会这样做了。
unsafe class A
在不安全类里可以定义一些不安全方法和变量,但只能在不安全类内部使用,否则编译出错。
还可以进行不安全编译:
csc \unsafe wdong.cs
using System;
class Test
{
unsafe static void WriteLocations(byte[] arr) {
fixed (byte *p_arr = arr) {
byte *p_elem = p_arr;
for (int i = 0; i < arr.Length; i++) {
byte value = *p_elem;
string addr = int.Format((int) p_elem, "X");
Console.WriteLine("arr[{0}] at 0x{1} is {2}", i, addr, value);
p_elem++;
}
}
}
static void Main() {
byte[] arr = new byte[] {1, 2, 3, 4, 5};
WriteLocations(arr);
}
}只不过使用了unsafe 以及fix object来标识罢了!
是对象引用吧。
和JAVA差不多啊。
.........
.........
C#有指针有指针有指针有指针有指针有指针有指针有指针有指针有指针!
有真正的真正的真正的真正的真正的真正的真正的指针!
看看楼上们辛苦的回答吧,怎么还搞不清楚,谁再说C#没有指针我就跟谁急
但指针最好少用,不然,戳到屁股怎么办? <摘自ANDERS回忆录 2001.5.28 99:99:99>