zoukankan      html  css  js  c++  java
  • 面试题一

    package com.foreign;
    public class Inc { 
        public static void main(String[] args) { 
           Inc inc = new Inc(); 
           int i = 0; 
           inc.fermin(i); 
           i= i ++; 
           System.out.println(i);
        
        
        void fermin(int i){ 
           i++; 
        
    }
     
    sout 输出是多少?
    ---------------------------------------------------------------------------------摘自牛客网------------------------------------------------------------------------------
    i++      先赋值在计算结果;
    ++i      先计算结果再赋值。
    int i = 0;  
           i = i ++;  // 左边这个i其实是障眼法,就是一个中间变量,可以和下行的i合并;
           System.out.println(i);   这里等价于:
      int i = 0;
           System.out.println(i++);   这下再看,先赋值(先将i传给println函数打印出来,在计算表达式结果)
    所以打印出来的是0,实际上整个表达式的结果已经是1了,只是没有打印出整个表达式的结果。
    所以我们知道如下结论:
    1、无论怎么变,i++和++i的整个表达式的结果都是1.
    2、有时我们打印的是表达式的结果(System.out.println(++i)),
          有时我们打印的只是一个中间变量(System.out.println(i++))。
    Ps:
    int i = 0;  
    i++;
    System.out.println(i);  //值为1    打印的是表达式的结果

    int i = 0;  
    ++i;
    System.out.println(i);  //值为1     打印的是表达式的结果 

    int i = 0;  
    i = i++;
    System.out.println(i);  //值为0      打印的是中间变量(JVM中间缓存变量机制)

    int i = 0;  
    i = ++i;
    System.out.println(i);  //值为1    打印的是表达式的结果
  • 相关阅读:
    phpMyAdmin cannot login to mysql server
    emulation 与 simulation 的区别
    C++类构造函数中的成员初始化
    KEY IDEA For Topology-based Analysis
    NOTES ON [Efficient and Cost-Effective Hybrid Congestion Control for HPC Interconnection Networks]
    Install Google Chrome On Ubuntu 14.04
    idea 远程debug调试
    癌细胞作用于身体
    应用高cpu高内存占用
    Jackson总结:常用注解、整合spring、自定义JsonSerializer
  • 原文地址:https://www.cnblogs.com/fangke/p/9317235.html
Copyright © 2011-2022 走看看