#include
int main()
{
int x = 4;
int y = (++x) + (++x) + (++x);
printf("x = %d, y = %d\n", x, y); //x = 7, y = 19
x = 4;
y = 0;
y = (++x) + (++x);
printf("x = %d, y = %d", x, y); //x = 6, y = 12
return 0;
}
不同编译器优先级不一样
有的先算3个++x,再算x+x+x
而有的会先算2个++x,然后x+x,再++x,再和剩下的一个相加
多了一个++x,怎么会一样啊
数组扩容是数组的一个比较重要的特性,在原先数组长度基础上,创建一个新数组新数组长度为原来数组长度+n。之后再将原来数组的所有元素遍历一遍交给新数组。之后将新数组地址返回给原先数组名即可。
import java.util.*;
/*
数组扩容,其实就是创建一个新的数组,将元素赋值进去之后将新的地址返回即可
*/
class test3{
public static void main(String [] args){
int[] arr=new int[]{1,2,3};
arr=copyOf(arr,arr.length+1);
arr[arr.length-1]=5;
System.out.println(Arrays.toString(arr));
}
public static int[] copyOf(int[] arr,int newlen){
int[] newarr=new int[newlen];
for(int i=0;i<arr.length;i++){
newarr[i]=arr[i];
}
return newarr;
}
}