如何使用c#结构体
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"如何使用c#结构体",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用c#结构体"吧!直接看c++和c#代码:struct struc
千家信息网最后更新 2026年10月31日如何使用c#结构体
本篇内容主要讲解"如何使用c#结构体",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用c#结构体"吧!
直接看c++和c#代码:
struct structpointer{ int id; int* ptrid;};void processstructpointer(structpointer *sp){ if (sp == NULL) return; int* p; p = sp->ptrid; while (true) { if (*p != 0) //只要不是0就处理 { cout << *p << endl; *p += 1; p += 1; } else { break; } }} unsafe public struct structpointer { public int id; public int* ptrid; }; [DllImport("ccalldll2.dll", EntryPoint = "processstructpointer", CallingConvention = CallingConvention.Cdecl)] public static extern unsafe void processstructpointer(structpointer *sp); private void button2_Click(object sender, EventArgs e) { structpointer[] sp = new structpointer[1]; int[] ids = new int[3]; ids[0] = 1; ids[1] = 5; ids[2] = 7; unsafe { ////int* p = &ids[0];//只能获取 fixed 语句初始值设定项内的未固定表达式的地址 //fixed(structpointer* p = &sp[0]) //{ // //p->ptrid = &ids[0];//只能获取 fixed 语句初始值设定项内的未固定表达式的地址 //} fixed(int *p = &ids[0]) { fixed(structpointer* pt = &sp[0]) { pt->ptrid = p; //注意这种写法 processstructpointer(pt); processstructpointer(pt); } } } }注意:连续两次调用processtructpointer(pt)的现象:
1)当用ids[0] = 1; ids[1] = 5; ids[2] = 0;则一切现象都正常OK;
2)当用ids[0] = 1; ids[1] = 5; ids[2] = 7;则一切现象都不正确。
上面两种现象都好理解,关键是结构体,结构体指针,结构体成员是指针,结构体指针作参数在c++和c#之间是如何处理的。其实还有IntPtr可以处理struct相关的参数。
补充说明:
以前一直实验都是c++和c#中的struct的名称都是一样的,今天将上面的structpointer改为structpointerxback,其它c#中代码也对应修改名称,结果实验也是OK的。这说明:名称只是形式而已,真正从内存角度来说,c++处理的时候并不是以名称来看的,还是从内存物理结构来看。
到此,相信大家对"如何使用c#结构体"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
结构
c#
名称
现象
c++
指针
处理
内存
内容
参数
地址
表达式
语句
学习
实验
实用
更深
之间
代码
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
上海挚品互联网科技
九亚互联网科技
深圳齐家互联网科技
上海喔噻互联网科技
互联网科技小额贷款
镁科技互联网资讯平台
顺网科技2021年互联网排名
新华互联网科技2019
须眉科技是互联网公司吗
港股科技和互联网
互联网还是高科技吗
中和天地互联网科技有限公司
互联网科技包装股
互联网科技新闻
银川新华互联网科技学校原画
安徽零酒互联网科技有限公司
优雇互联网科技有限公司
瑞安市蟠桃会互联网科技有限公司
高科技和互联网的现代国家
百单网互联网科技有限公司
广州大一互联网络科技有限公司
互联网科技有限公司图片
互联网科技社
致骋互联网科技
互联网科技英文翻译
金融科技与互联网金融相同和不同
互联网科技产业特征
互联网科技快讯热点
科技互联网公司两年变化