请教:结构(structure)中的数组怎样按值传送啊?

问题描述

structurePDimxasintegerdimr()asintegerendstructureprivatesubaaa()dimp1asp:redimp1.r(3):p1.r(3)=100dimp2asp:p2=p1endsub问题来了:当p1.x改变时,p2.x并未改变,这是正常的。当p1.r(3)改变时,p2.r(3)也随之改变了!!!有什么方法也可以让p2.r(3)不随p1.r(3)改变啊?

解决方案

解决方案二:
数组是引用,除非你复制一份过去
解决方案三:
数组是引用,指向同一个地址,所以一个改变,另一个也变了你可以将p1拷贝到p2上,而不是直接p2=p1
解决方案四:
好嘛楼上两位说的很清楚了,我就不说饿了
解决方案五:
有没有其它办法解决?
解决方案六:
怎样拷贝?
解决方案七:
Clone
解决方案八:
用LINQ:Dimx()AsInteger=p.r.ToArray()

时间: 2024-12-24 09:01:34

请教:结构(structure)中的数组怎样按值传送啊?的相关文章

想请教一下方法中传数组和传可变参数的区别

问题描述 想请教一下方法中传数组和传可变参数的区别 public int Add(int n1,int n2) { return n1+n2; } 想请教一下各位大神 这个方法中参数个数不固定的话 可以往里面传一个int类型的数组 也可以传一个params可变参数数组 想请教这两种方法有什么区别 解决方案 可变长参数没有限定参数的个数 数组则是限定了个数 解决方案二: 可变参数,也是数值访问形式,不过是字符串 解决方案三: 传可变参数可以多个参数,比较灵活 数组是定死的

c语言结构体中指针数组怎样赋值

问题描述 c语言结构体中指针数组怎样赋值 定义一个结构体struct AS{ char *p[1]:}:怎样用gets函数给指针数组赋值呢? 解决方案 看Unix/Linux上的man: Standard C Library Functions gets(3C)NAME gets fgets - get a string from a stream SYNOPSIS #include char *gets(char *s); char *fgets(char *s int n FILE *str

struct-C语言中结构体中的数组,不能直接赋值吗

问题描述 C语言中结构体中的数组,不能直接赋值吗 设有定义:struct{char mark[12];intnum1;double num2;}t1,t2;若变量均已正确赋初值,则以下语句中错误的是(C) (A) t1=t2; (B) t2.num1=t1.num1; (C) t2.mark=t1.mark;//mark为结构体中的数组,不能直接赋值?? (D) t2.num2=t1.num2; ?====如题参考答案说为结构体中的数组,不能直接赋值,为什么呢?那应该怎么赋值呢?求大侠指教 解决

struct-数组赋值和结构体中的数组赋值问题

问题描述 数组赋值和结构体中的数组赋值问题 typedef struct _Teacher{ char name[20]; int age; }Teacher; void main(){ Teacher t1; t1.age=20; t1.name="abc";//报错为什么? char name[20]="abc";//不报错 } 求大牛给个详细的解释,对于abc C++编译器是如何处理的?是分配内存放在全局区,还是当做字面值 解决方案 首先,其实你是忘记了C++

请教关于JavaScript中的对象是按照值传递还是引用传递

问题描述 请教关于JavaScript中的对象是按照值传递还是引用传递 function SetName(obj){ obj.name="Tom";//执行之前,此时的obj和Person的name属性均为undefined obj1=new Object(); obj1=obj;//声明一个全局对象,那么obj.obj1和Person此时应该是同一个对象 }//SetName函数执行完之后,obj对象销毁,其余对象仍然存在 Person=new Object();//声明Person

结构体中指针赋值问题的分析及C代码示例

问题描述 某结构体的定义如下: typedef struct { int iAge; // 年龄 char szAddr1[100]; // 地址1 char *pszAddr2; // 地址2 char **pszAddr3; // 地址3 } T_PeopleInfo; 请问如何对结构体中的各个成员变量(尤其是指针变量)进行赋值? 问题分析及C代码示例 我们可以看到,在结构体T_PeopleInfo中,pszAddr2和pszAddr3均为指针,其中pszAddr2为一级指针,pszAddr

结构体中的柔性数组成员(数组长度为0成员)!

其实很早在看LINUX下就看到这个东西,后来在MFC内存池里同样也看到了类似的东西,还依照MFC写过一个类似的小内存池,(MFC用的是return this + 1)后来在李先静的<系统程序员成长计划>里看到了类似的定义,于是心里想着总结一下,结果发现网上已经有牛人总结的很好了,于是乎就转了过来,谢谢你们的分享,这是我前进的动力!同时,需要引起注意的:ISO/IEC 9899-1999里面,这么写是非法的,这个仅仅是GNU C的扩展,gcc可以允许这一语法现象的存在.但最新的C/C++不知道是

struct-结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化

问题描述 结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化//定义结构体//struct achievement{int number; char name[20]; char sex; float achievement1achievement2achievement3;}tab_achievement[N]; 解决方案 写一个循环,从txt中读取数据,然后赋值

struct-对结构体中的二维数组赋值为何会影响下一排

问题描述 对结构体中的二维数组赋值为何会影响下一排 #include "stdio.h" struct qipan { char point[20][80]; bool isClear; }; qipan board; int main() { for(int i=0;i<=19;i++) for(int j=0;j<=79;j++) board.point[i][j]=' '; board.point[1][1] = board.point[1][2]=board.poi