| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 551 人关注过本帖
标题:指针问题
只看楼主 加入收藏
zjzhang
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-9-25
收藏
 问题点数:0 回复次数:4 
指针问题
int a = 1;
CallFunction(&a);
这样没问题, a是一个局部的变量 但是如果要取得一个 字段的地址就不行了

比如;
class Test
{
   private int a = 1;
   
   public unsafe void Test()
  {
      CallFunction(&a);
  }
}
这样就不行了 说是不能去到a的地址 到底怎么搞的啊
搜索更多相关主题的帖子: 指针 
2008-10-25 19:22
liubaoen
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:117
注 册:2006-6-12
收藏
得分:0 
在C#中指针完全是个多余的东西,这些东西并不是没有,而是在背后C#帮你完成了,这样可以避免你在使用指针的出错。这可能就叫因噎废食吧。
  但是我建议不要使用指针,因为可能通过其他方式实现。比如byref参数,当然,也可以使用unsafe参数,在里面使用指针。
2008-10-26 09:23
zjzhang
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-9-25
收藏
得分:0 
为什么每个人都是讲多余呢? 我觉得C#到处都是限制 不像MFC一样想怎样就怎样 现在我就是要获取它的指针 怎么做呢? 我的那个问题怎么解决呢? 或者 换成这样

int a = 1;
int& b = a;

int a = 1;
int* b = &a;
这里的四行代码表达的意思是一样的,就是我像修改b的时候修改a。

我知道在C#里面类对象都是new出来的,都是引用,对于类对象来说没问题,但是基本对象 比如int bool long那些 我怎样才能实现和上面代码一样的效果? 在不用ref out 的情况下,因为的函数不可能带参数,函数是个虚函数,它不知道子类要怎么样子的参数。而且不能动,代码架构很大。

[[it] 本帖最后由 zjzhang 于 2008-10-26 09:44 编辑 [/it]]
2008-10-26 09:36
shmilylee
Rank: 2
来 自:江苏扬州蹩脚小公司
等 级:论坛游民
威 望:2
帖 子:242
专家分:22
注 册:2007-7-6
收藏
得分:0 
可能int a = 1;也要放到不安全代码函数中,在外面定义可能会报错!


太可恶了,居然不能超过100个字符!
这区区100个又怎么能概括我平凡而又伟大的一生!
2008-10-26 09:40
zjzhang
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-9-25
收藏
得分:0 
解决了 要用到
fixed(int* b = &a)
{
  ....
}

因为fixed不会要垃圾回收去重新调整a在内存里面的位置,如果不加fixed垃圾回收的时候a的地址就会被改变,这样做指针就没意义了 呵呵 ,发出来大家了解一下,以后可能会用到
2008-10-26 09:55
快速回复:指针问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024302 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved