我正在尝试将一些数据从C++服务器发送到C#客户端.我能够发送char数组.但是浮点数组存在一些问题.
这是C++服务器端的代码
float* arr;
arr = new float[12];
//array init...
if((bytecount = send(*csock, (const char*)arr, 12*sizeof(float), 0))==SOCKET_ERROR){
}
Run Code Online (Sandbox Code Playgroud)
所以是的,我正在尝试发送一个大小为12的浮点数组.
这是客户端的代码.(奇怪的是,首先没有简单的方法让浮出水流.我之前从未使用过C#,也许还有更好的东西?)
//get the data in a char array
streamReader.Read(temp, 0, temp.Length);
//**the problem lies right here in receiving the data itself
//now convert the char array to byte array
for (int i = 0; i < (elems*4); i++) //elems = size of the float array
{
byteArray = BitConverter.GetBytes(temp[i]);
byteMain[i] = byteArray[0];
}
//finally convert it to a float array
for …Run Code Online (Sandbox Code Playgroud) 这可能看起来很简单,但它只是偶然发现了我和我的朋友......
让我们在java中使用以下代码片段
//........
int a=10;
a= a-- + a--;
System.out.print("a="+a);
//........
Run Code Online (Sandbox Code Playgroud)
在c
//........
int a=10;
a= a-- + a--;
printf("a= %d",a);
//.......
Run Code Online (Sandbox Code Playgroud)
在前一种情况下,你在C中输出为19,你得到它为18. c中的逻辑是可以理解的,但在java中?
在java中如果它喜欢
int a=10;
a=a++;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,输出为10.
那么逻辑是什么?