2 dxt 1515 dxt_1515 于 2016.09.22 22:12 提问

想问一下c语言中的->指针,在java中怎么应用的?举例如下:

C语言中:ImageCount = receive_data->Contact.Image.PixelCnt; (receive_data是指针,Contact是自定义的联合体);我在java中如何表示
我这样写的,但是报错:
PixelCount = receive_data.Contact.EdgeData.Count;

求指导,感激不尽!!!

5个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.22 22:23

java中没有指针 ,已经把它屏蔽掉了(谢天谢地终于没有指针了),像链表等有专门的类用来声明 List Stack 等 ,一般都是直接使用下标读取,或者你想用和C差不多的办法执行的话,就是迭代器

caozhy
caozhy 这是正解。不知道哪个小白胡乱点的踩。
大约一年之前 回复
qq_29389209
qq_29389209   2016.09.22 23:24

java中的是不能进行运算的指针。即引用。类,接口,数组都是引用类型

qq_29389209
qq_29389209   2016.09.22 23:27

receive_data应该封装为一个类,count是他的一个成员变量并提供get方法,。receive_data的对象调用getCount..方法取得结果

dxt_1515
dxt_1515 你说的那个封装我不太明白,因为我的receive_data是我自定义类型的一个变量,我把代码贴出来,你能帮我看一下吗?谢谢啦!
大约一年之前 回复
qq_33696779
qq_33696779   2016.09.23 00:02

我想说 你这写的啥啊

dxt_1515
dxt_1515   2016.09.25 20:30

private void copy_pixel(CSensorPkg receice_data){
short PixelCount, PixelStart;
PixelCount = receive_data.Contact.EdgeData.Count;//图像报文所包含的像素数
PixelStart = receive_data.Contact.EdgeData.Start;//图像报文起始位置
copy(ImagePixel[PixelStart],receive_data.Contact.EdgeData.Data, 2 * PixelCount);//拷贝图像
if(PixelStart + PixelCount == receive_data。Contact.EdgeData.TotalCnt)
{
setflag.ReLineFinished = true;
setflag.DrawLineFlag = false;
}

}

public class CSensorPkg{
public CSensorPkg(short command) {
super();
Command = command;
}
private short Command;
public class Contact{

        public Contact(CImage image, CSensor sensor, CEdgeChkData edgeData) {
            super();
            Image = image;
            Sensor = sensor;
            EdgeData = edgeData;
        }
        CImage      Image;
        CSensor      Sensor;
        CEdgeChkData EdgeData;
    }
}
Csdn user default icon
上传中...
上传图片
插入图片