社区
C#
帖子详情
C 中的指针类型对应C# 里面数据类型怎么表示?
mcdjxiao
2010-01-05 11:17:39
C 中的指针类型对应C# 里面数据类型怎么表示?用ref 或者OUT 修饰可以那?如果可以到底用REF 还是OUT?
比如C char * C#中用REF CHAR 还是OUT CHAR ?这个怎么区分?
或者不对的话怎么转换
我现在要 用C 的DLL
...全文
568
16
打赏
收藏
C 中的指针类型对应C# 里面数据类型怎么表示?
C 中的指针类型对应C# 里面数据类型怎么表示?用ref 或者OUT 修饰可以那?如果可以到底用REF 还是OUT? 比如C char * C#中用REF CHAR 还是OUT CHAR ?这个怎么区分? 或者不对的话怎么转换 我现在要 用C 的DLL
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wei322x
2010-01-06
打赏
举报
回复
C中的指针就是记录保存地址的空间,一般桌面电脑用的CPU都是32bit寻址两个字节)。从386开始就是32位的啦,486,Pentium,II,III,4都是32bit,不过最新的AMD的Athron64就是64bit寻址了,扯远了。
因此任何一个占用32位bit的数据类型都可以保存指针。
在C#中int数据类型就是32位的,因此一般也就用int来表示指针。同样只要是32位的数据类型都基本都可以用来表示指针。
当然,C#还提供了一个转本用来表示指针的数据类型——IntPtr,可以更清楚的表示指针。
mcdjxiao
2010-01-06
打赏
举报
回复
还有别的解释没?
soaringbird
2010-01-05
打赏
举报
回复
还可以用byte*,void*
soaringbird
2010-01-05
打赏
举报
回复
char*在C#里用什么对应,要具体问题具体对待,不同情况下可以用string,StringBuilder,ref byte,byte[],还有万能的IntPtr
mcdjxiao
2010-01-05
打赏
举报
回复
还有别的说法不
jbo126
2010-01-05
打赏
举报
回复
就用ref string不行么?
polarissky
2010-01-05
打赏
举报
回复
[Quote=引用 4 楼 septemson 的回复:]
out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化
都是传递地址的,唯一的区别是REF必须初始化,而OUT不需要
[/Quote]
UP
septemson
2010-01-05
打赏
举报
回复
out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化
都是传递地址的,唯一的区别是REF必须初始化,而OUT不需要
flyerwing
2010-01-05
打赏
举报
回复
unsafe *p
swan01
2010-01-05
打赏
举报
回复
对于char* 可以用ref byte[]
卧_槽
2010-01-05
打赏
举报
回复
char *
用stringbuilder
jimeixuehua
2010-01-05
打赏
举报
回复
最好别用,指针属于不安全代码
RFEZGC
2010-01-05
打赏
举报
回复
对于值类型来说(除了intptr),如果函数的原型是指针类型的,最好用ref,而不是out,我的经验,要不然会有一些莫名其妙的错误。
对于引用类型来说(如string),函数的原型必须是指针类型,除非原型指针的二级指针,那就需要ref string 了
对于[Out] [In] 这些修饰参数的属性,一般用到的地方是IDL语言
septemson
2010-01-05
打赏
举报
回复
C#是可以用指针的哦~不过它必须包含在UNSAFE块中,并且不会抛任何逻辑错误。你一定要和C++一样小心的使用指针。
mcdjxiao
2010-01-05
打赏
举报
回复
指针? C# 用指针?
septemson
2010-01-05
打赏
举报
回复
unsafe
{
//必须包含在UNSAFE块里才能用指针
char* p;//注意,C++是 char *p,而c#是char* p
}
建议楼主去看C#高级编程
C#
与C/C++的交互(包括基本
类型
传递,
指针
传递,函数
指针
传递,结构体的传递)
本文详细介绍了
C#
与C++互操作的具体方法,包括基本
数据
类型
、
指针
、函数
指针
、结构体的传递等内容,并提供了完整的示例代码。
C++与
C#
数据
类型
对应
关系总结
本文详细列举了API
中
的各种
数据
类型
,并给出了这些
类型
在
C#
中
的
对应
形式。通过对比,开发者可以轻松地在两种语言间进行
数据
类型
的转换。
C#
与C++互操作时的
数据
类型
对应
博客总结了
C#
和C++互操作时的
数据
类型
对应
问题,强调
数据
类型
使用错误可能导致程序异常。介绍了表格列含义,提及string和StringBuilder的参考内容。还说明了使用System.IntPtr或
指针
类型
的场景,并给出使用IntPtr和
指针
读取共享内存数据的示例代码。
C#
数据
类型
解析
本文围绕
C#
数据
类型
展开,介绍了值
类型
、引用
类型
和
指针
类型
。值
类型
直接存储数据,引用
类型
存储数据内存位置引用,包含 object、dynamic 和 string 等。其
中
,object
类型
通用性强,涉及装箱和拆箱操作;dynamic
类型
运行时进行
类型
检查;string
类型
用于处理文本。
指针
类型
存储内存地址,但使用受限。
C#
数据
类型
本文详细介绍了
C#
中
的
数据
类型
,包括值
类型
、引用
类型
(如对象、动态和字符串)及
指针
类型
。重点讲解了
类型
转换,包括隐式和显式转换,并阐述了可空
类型
的概念及其在处理可能未赋值数据的应用。
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章