zoukankan      html  css  js  c++  java
  • C++编译器对属性的初始化检查远没有Java严格

    C++编译器对属性的初始化检查远没有Java严格
    // Java编译通过:
    class yy
    {
    public static void main(String[] args)
    {
    int i;
    System.out.println("Hello World!");
    }
    }

    // Java编译通不过,在打印那行说i没有初始化。这说明Java的编译检查比C++严格。
    class yy
    {
    public static void main(String[] args)
    {
    int i;
    System.out.println("Hello World!"+i);
    }
    }
    // 更不用说在未初始化的情况下,i++了
    class yy
    {
    public static void main(String[] args)
    {
    int i;
    i++;
    System.out.println("Hello World!"+i);
    }
    }

    // C++编译通过,运行也没有问题,只是i打印出来是一个内存里的随机值:-858993460
    int main(int argc, char* argv[])
    {
    int i;
    printf("%d ",i);
    return 0;
    }

    // C++编译通过,运行通过,i打印出来是-858993459(真的做到了 -858993460 +1)
    int main(int argc, char* argv[])
    {
    int i;
    printf("%d ",++i);
    return 0;
    }


    结论:C++对于初始化的检查,远远不如Java严格。这里根本没有涉及到指针的问题。

  • 相关阅读:
    Title
    Title
    Title
    Title
    Python生成随机验证码
    Time模块和datetime模块
    For循环的实质
    Python函数
    集合set
    字符串内置方法的使用
  • 原文地址:https://www.cnblogs.com/findumars/p/3300263.html
Copyright © 2011-2022 走看看