为什么i + 1不能替换为++i,它们效果不应该一样吗

初学,编写杨辉三角时遇到的问题
原来是 i + 1 能正常运行,但是改成 ++i 就不能正常运行了
会输出一个0,并提示空指针异常
" (前)++ :先自增1,后运算 "不应该等价于直接加 1 吗?
实在无法理解这个问题出现的原因,希望得到您的解答,谢谢!

代码

import java.util.Scanner;
public class test {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入行数");
        int line = scan.nextInt();
        int[][] yang = new int[line][];

        for(int i = 0; i < yang.length; i++) {
            yang[i] = new int[++i];                       //问题出现在这里
        }

        for (int i = 0; i < yang.length; i++) {
            for(int j = 0; j < yang[i].length; j++) {
                System.out.print(yang[i][j]+"  ");
            }
            System.out.println();
        }
    }
}

运行结果及报错内容:

0
Exception in thread "main" java.lang.NullPointerException
at test.main(test.java:14)

++i会改变i这个变量本身的值(本身的值加1),你代码中的i同时有事for循环中的条件,自然会有变化。i+1就一样它不会赋值改变i本身。

++i的作用是i先滋生加1 再进行运算,