当前位置:首页 » 编程语言 » 结构体java

结构体java

发布时间: 2023-04-14 19:57:35

c语言中带指的结构体如何在java中实现相应定义

//结构体可以用类代替,变量保存的就是结构体这种Object类型。所以不需要加*号即可。
classTriTreeNode{
publicStringname="";
publicTriTreeNodemLeftChild;
publicTriTreeNodemRightChild;
;
;
;
}

publicclassTest24{
publicstaticvoidmain(String[]args){
/*创建一个节点*/
TriTreeNodemTriTreeNode=newTriTreeNode();
mTriTreeNode.name="A";
/*再创建一个孩子节点,添加到上个节点的左孩子*/
TriTreeNodebTri=newTriTreeNode();
bTri.name="B";
mTriTreeNode.mLeftChild=bTri;
/*再创建个孩子节点,添加到A节点的右孩子*/
TriTreeNodecTri=newTriTreeNode();
bTri.name="C";
mTriTreeNode.mRightChild=cTri;
/*再创建一个节点D,添加到B孩子的左节点上*/
TriTreeNodedTri=newTriTreeNode();
bTri.name="D";
bTri.mLeftChild=dTri;
}
}

② 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];
呵呵,希望对你有所帮助..

③ java socket 如何发送一个结构体消息,java中结构体是个什么概念...

有一个socket 程序,一端是c++写的socket 服务程序
另一端是Java写客户端程序,两者之间需要通信。
c++/c接收和发送的都是结构体,而Java是直接发送的字节流或者byte 数组。

解决方法:c++/c socket 在发送结构体的时候其实发送的也是字节流。因为结构体本身也是内存中的一块连续数据。问题就变成了如何把结构体手动转成字节的问题了
采用类似的报头:
// packet head
typedef struct tagPacketHead{
long PacketID;
long PacketLen;

}PacketHead;此时套接口的读写方式为先读报头,在报头中取出数据负载的长度,然后再读相应字节谨宴的数据。

包头后面跟上包体,其中包体的长度,就是上面结构体中的PacketLen,Clinet首先接受包头,因为包头是两边约定好的,所以可以直接Receive一个定长的消息,也就是这个包头的长度的消息,从包头中取得包体的长度后,就可以再次Receive一个包谈晌枯体长度的消息了。那么Java中如何发送一个结构体呢?下面是解决方法:

使用C/S模式,Client为VC6开发,Server为Java,通过Socket通信。
package org.charry.org;
import java.net.*;
/**
*
* 字节转换,参考网络文章含洞
*/
class Packet {
private byte[] buf = null;
/**
* 将int转为低字节在前,高字节在后的byte数组
*/
private static byte[] toLH(int n) {
byte[] b = new byte[4];
b[0] = (byte) (n & 0xff);
b[1] = (byte) (n >> 8 & 0xff);
b[2] = (byte) (n >> 16 & 0xff);
b[3] = (byte) (n >> 24 & 0xff);
return b;
}
/**
* 将float转为低字节在前,高字节在后的byte数组
*/
private static byte[] toLH(float f) {
return toLH(Float.floatToRawIntBits(f));
}
/**
* 构造并转换
*/
public Packet(int packetID, int packetLen, String packetBody) {
byte[] temp = null;
buf = new byte[packetBody.getBytes().length + 8];
temp = toLH(packetID);
System.array(temp, 0, buf, 0, temp.length);
temp = toLH(packetLen);
System.array(temp, 0, buf, 4, temp.length);
System.array(packetBody.getBytes(), 0, buf, 8, packetBody.length());
}
/**
* 返回要发送的数组
*/
public byte[] getBuf() {
return buf;
}
/**
* 发送测试
*/
public static void main(String[] args) {
try {
String tmp = “test string!”;
Socket sock = new Socket(”127.0.0.1″, 8888);
sock.getOutputStream().write(
new Packet(123, tmp.length(), tmp).getBuf());
sock.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果需要用Java 接收结构体的话只需要将上面过程逆过来即可。

④ java里面有没有结构体


{
盯桥//1
//2
毕敬//3
if(b)berak;//如果b为true那么,代码4就不会被执凯数猛行,进而继续执行代码5
//4
}
//5

⑤ C++中的结构体对应与java中的什么

对c++来说,结构体基本相备粗神当于一个只有public成员的类,即无法支持访问控制。也就是说,c++中你用结构体写的,都可以用类完成。
java中的类,对于c++的类
java普通对象方仿亏法(非static,非final)对应于c++类普凳帆通的 virtual 方法
java抽象方法/接口声明方法,对应于 c++类virtual fun()=0;的形式

⑥ 基础问题,c语言中的结构体,在java中怎么表示

由雹顷丛于Java是完源樱全面向对象编程的,因此C语言中的结构体在Java中可以写为一个类,类中包含多个成员变量,对应于结构体中的各个乎枝变量。

⑦ java 如何实现结构体

Java并不像c语言一样定义了结构体的语法形式,取而代之的是类,声明一个类,里面包含很多属性,也就是相当于结构体中多种变量类型的功能。
Java属于高级语言,其发展就是从c、c++演变而来,去掉了烦恼的指针,舍弃掉了一些类似于结构体的不必要的语言结构。

⑧ java调用c++库的时候有结构体怎么办

Java调用C库的时候,可以使用JNA或者JNI来调用C库中的结构体。JNA可以通过映射启晌一个Java内部类来实现对应C库中结悄隐锋构体的携亮映射,而JNI则需要在Java代码中定义一个数据结构,它将会与C库中的结构体保持一致。

热点内容
安卓和苹果哪个最保值 发布:2024-11-02 02:30:02 浏览:603
桥接的网关服务器地址怎么查 发布:2024-11-02 02:29:11 浏览:861
电脑里dns服务器未响应咋办 发布:2024-11-02 02:28:24 浏览:543
星与云服务器 发布:2024-11-02 02:27:49 浏览:205
centos升级python27 发布:2024-11-02 02:00:57 浏览:673
ue4未找到编译器 发布:2024-11-02 01:46:08 浏览:155
python中的withopen 发布:2024-11-02 01:46:07 浏览:976
编程名人 发布:2024-11-02 01:42:18 浏览:867
服务器电脑配置表 发布:2024-11-02 01:41:29 浏览:370
linux使用串口 发布:2024-11-02 01:37:11 浏览:702