qq_39868160 2017-11-29 07:10 采纳率: 0%
浏览 825

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;
}
被注释的那行不起作用

  • 写回答

4条回答 默认 最新

  • Debug_dodge 2017-11-29 07:34
    关注
     (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);
    
    
    评论

报告相同问题?