小编par*_*ain的帖子

C和Java的逻辑差异

在C中编译并运行此代码

#include <stdio.h>

int main()
{
  int a[] = {10, 20, 30, 40, 50};
  int index = 2;
  int i;

  a[index++] = index = index + 2;
  for(i = 0; i <= 4; i++)
    printf("%d\n", a[i]);
}
Run Code Online (Sandbox Code Playgroud)

输出: 10 20 4 40 50

现在用于Java中的相同逻辑

class Check
{

  public static void main(String[] ar)
  {
    int a[] = {10, 20, 30, 40, 50};
    int index = 2;

    a[index++] = index = index + 2;
    for(int i = 0; i <= 4; i++) …
Run Code Online (Sandbox Code Playgroud)

c c++ java operators

35
推荐指数
1
解决办法
2382
查看次数

我们可以在硬件中实现一个java解释器本地执行Java字节码吗?

如果我们在硬件中实现java解释器那么我们如何实现java字节码的体系结构中立性... java是否使用JIT(只是在时间解释器中)?以及这些与虚拟机概念的操作系统和java虚拟机(JVM)有何关系

java virtual interpreter jit jvm

19
推荐指数
3
解决办法
7501
查看次数

正则表达式词法分析

为什么重复的字符串如[wcw | w是a和b的字符串]不能用正则表达式表示?请.给我详细的答案,作为词法分析的新手.谢谢 ...

regex

2
推荐指数
1
解决办法
1573
查看次数

c\c ++中socket编程的问题

#include "stdafx.h"
#include <windows.h>
#include <winsock.h>
#include <stdio.h>

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR IpCmdLine,int nCmdShow)
{
    WSADATA ws;
    char buf[100];

    WSAStartup(0x0101,&ws);

    sprintf(buf,"%d.%d",HIBYTE(ws.wVersion),LOBYTE(ws.wVersion));
    MessageBox(0,buf,"info",0);
    WSACleanup();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此程序用于获取计算机中可用的wsock版本的信息.我不明白为什么"stdafx.h"包含在程序中.APIENTRY有什么意义?我们不能使用_stdcall吗?我也无法在VC++中编译它.代码有什么问题?

以下是执行程序时的错误,编译时没有错误.

--------------------Configuration: sa - Win32 Debug--------------------
Linking...
sa.obj : error LNK2001: unresolved external symbol _WSACleanup@0
sa.obj : error LNK2001: unresolved external symbol _WSAStartup@8
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/sa.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

sa.exe - 4 error(s), 0 warning(s)
Run Code Online (Sandbox Code Playgroud)

c c++ sockets winsock

1
推荐指数
1
解决办法
1633
查看次数

L2缓存

2*512 KB L2缓存和1 MB L2缓存之间有什么区别?

hardware cpu-cache

0
推荐指数
1
解决办法
480
查看次数

二进制补码二进制形式

在TC++编译器中,5的二进制表示是(00000000000000101).我知道负数存储为2的补码,因此二进制的-5(111111111111011).最高位(符号位)为1,表示它是负数.

那么编译器如何知道它是-5?如果我们将上面给出的二进制值(111111111111011)解释为无符号数,它会变得完全不同吗?

另外,为什么1的恭维5 -6(1111111111111010)

c++ binary twos-complement

0
推荐指数
2
解决办法
1万
查看次数