C语言中,对指针指向的值进行运算为什么没用?

#include
#define N 100

int main()
{
int i;
int j;
int a[N][N];
int * aArray;
int n; //行数
scanf("%d",&n);
aArray = &a[0][0];
for(i = 0;i < N;i++)
{
(aArray + i * N + i) = 1;
*(aArray + i * N) = 1;
}
for(i = 2;i < N;i++)
{
for(j = 1;j < i;j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
//
(aArray + i * N + j) = (aArray + i * (N - 1) + j - 1) + *(aArray + i * (N - 1) + j);
}
}
for(i = 0;i < n;i++)
{
for(j = i;j < n - 1;j++)
printf(" ");
for(j = 0;j < i + 1;j++)
printf("%4d",
(aArray + i * N + j));
printf("\n");
}
return 0;
}
被注释的那行不起作用

 (aArray + i * N + j) = (aArray + i * (N - 1) + j - 1) + *(aArray + i * (N - 1) + j);

你这个居然编译没报错,也是厉害了

(aArray + i * N + j) 表达式作为左值了

姑且猜测一下,你想写的是

* (aArray + i * N + j) = *(aArray + i * (N - 1) + j - 1) + *(aArray + i * (N - 1) + j);

复制过来少了好多东西

 #include <stdio.h>
#define N 100

int main()
{
    int i;
    int j;
    int a[N][N];
    int * aArray;
    int n; 
    scanf("%d",&n);
    aArray = &a[0][0];
    for(i = 0;i < N;i++)
    {
        *(aArray + i * N + i) = 1;
        *(aArray + i * N) = 1;
    }
    for(i = 2;i < N;i++)
    {
        for(j = 1;j < i;j++)
        {
            //a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            *(aArray + i * N + j) = *(aArray + i * (N - 1) + j - 1) + *(aArray + i * (N - 1) + j);
        }   
    }
    for(i = 0;i < n;i++)
    {
        for(j = i;j < n - 1;j++)
            printf("  ");
        for(j = 0;j < i + 1;j++)
        {
            printf("%4d",*(aArray + i * N + j));
            printf("\n");
        }
}
return 0;
}

怎么个没用法?打印出来结果是多少?