当前位置:编程学习 > JAVA >>

C++中的结构体在java中应该怎么定义

答案:struct Stu { int n; }; void test(struct Stu *s[]) void main() { struct Stu *s; s=new Stu[10];//请问这里是不是动态开辟一个struct的数组呢???????? //然后我调用test() test(s); } 你定义的s是指向一个结构体变量的,而不是结构体数组 如果要指向一个结构体数组,应该这样定义,struct Stu (*s)[];//s指向一个结构体数组 s=new Stu[10]; 这样就可以了 另外:void test(struct Stu *s[])//Stu *s[],那么s是一个指针数组,而不是一个指针,但是s数组中的元素都是指向结构体变量的指针变量... 你的意思是想让s指向一个结构体数组,那么改成这样:void test(struct Stu (*s)[])应该就可以了.(还不行的话,就直接改成void test(struct Stu *s)试试,不过我感觉这个可能不对,因为类型也不匹配,但没有运行过..) 呵呵 祝你学习顺利... 刚运行过了,我的修改不行 一楼应该是正解... s=new Stu[10];//请问这里是不是动态开辟一个struct的数组呢???????? 是在内存的堆区中动态开辟一个长度为10的结构体数组.... 堆区中开辟的内存不会因为函数的结束而自动释放,所以函数结束前要使用一条delete s;语句来释放分配的内存... 改成下面的就对了... #include<iostream.h> struct Stu { int n; }; void test(struct Stu *s[]) {} void main() { struct Stu **s; s=new Stu*[10];//请问这里是不是动态开辟一个struct的数组呢???????? //然后我调用test() test(s); } 你的意思是s指向一个指针数组,那么s就是一个指向指针的指针变量,所以应该是 struct Stu **s; s中的元素是指针变量,那么就应该这样:s=new Stu*[10]; 呵呵,希望对你有所帮助..
其他:c++里面的struct和classs关键字基本等价。不同在于struct里面的成员默认是public
java里面的话就用class就行。 C++中的结构体struct是兼容C来的,在java中没有struct的定义,复杂数据类型都用class定义一个类,创建一个对象。

上一个:JAVA现在最热门的技术语言的什么?急
下一个:在Java中,如何使用javascript判断一个字符串是否类似于电话号码?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,