多个i++和++i的区别,不同的编译器有不同的结果,无意间发现的……
程序代码:
#include<stdio.h> int main(){ int i=5; int m,n,k; int p,q; q=(m=(i++))+(n=(i++))+(k=(i++)); printf("m:%d n:%d k:%d i:%d q:%d",m,n,k,i,q); printf("\n"); i=5; p=(m=++i)+(n=++i)+(k=++i); printf("m:%d n:%d k:%d i:%d p:%d\n",m,n,k,i,p); i=5; p=(++i)+(++i)+(++i); printf("m:%d n:%d k:%d i:%d p:%d",m,n,k,i,p); printf("\n"); return; } //m:5 n:5 k:5 i:8 q:15 //m:6 n:7 k:8 i:8 p:21 //m:6 n:7 k:8 i:8 p:22
程序代码:
public class Main { public static void main(String[] args) { int i=5; int m,n,k; int q=(i++) + (i++) + (i++); i=5; q=(m=i++) + (n=i++) + (k=i++); System.out.println("m:"+m+" n:"+n+" k:"+k); System.out.println("q:"+q); System.out.println("==============="); i=5; int p=(m=++i) + (n=++i) + (k=++i); System.out.println("m:"+m+" n:"+n+" k:"+k); System.out.println("p:"+p); System.out.println("==============="); i=5; p=(++i) + (++i) + (++i); System.out.println("p:"+p); } } //m:5 n:6 k:7 //q:18 //=============== //m:6 n:7 k:8 //p:21 //=============== //p:21
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
[ 本帖最后由 秦时的明月夜 于 2015-6-2 15:24 编辑 ]