搜索
编程论坛
→
.NET专区
→
『 C# 论坛 』
→ 指针问题
标题:
指针问题
只看楼主
zjzhang
等 级:
新手上路
帖 子: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
等 级:
论坛游侠
帖 子:104
专家分:117
注 册:2006-6-12
第
2
楼
得分:0
在C#中指针完全是个多余的东西,这些东西并不是没有,而是在背后C#帮你完成了,这样可以避免你在使用指针的出错。这可能就叫因噎废食吧。
但是我建议不要使用指针,因为可能通过其他方式实现。比如byref参数,当然,也可以使用unsafe参数,在里面使用指针。
2008-10-26 09:23
zjzhang
等 级:
新手上路
帖 子:7
专家分:0
注 册:2008-9-25
第
3
楼
得分: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
来 自:江苏扬州蹩脚小公司
等 级:
论坛游民
威 望:
2
帖 子:242
专家分:22
注 册:2007-7-6
第
4
楼
得分:0
可能int a = 1;也要放到不安全代码函数中,在外面定义可能会报错!
太可恶了,居然不能超过100个字符!
这区区100个又怎么能概括我平凡而又伟大的一生!
2008-10-26 09:40
zjzhang
等 级:
新手上路
帖 子:7
专家分:0
注 册:2008-9-25
第
5
楼
得分:0
解决了 要用到
fixed(int* b = &a)
{
....
}
因为fixed不会要垃圾回收去重新调整a在内存里面的位置,如果不加fixed垃圾回收的时候a的地址就会被改变,这样做指针就没意义了 呵呵 ,发出来大家了解一下,以后可能会用到
2008-10-26 09:55
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-240561-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.671933 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved