C言語のポインタの勉強をしています。//エラー と書いている行でエラーがでます。*(a++),*(b++),*(c++)をそれぞれ*(a+i),*(b+i),*(c+i)とすればエラーがなくなるのですが、違いがわかりません。
先頭アドレスをセットしてないからエラーが出たのかと思いましたが、それが原因なら*(a+i),*(b+i),*(c+i)でエラーがなくなるのはどうしてでしょうか?
違いを教えて下さい。よろしくお願いします。
#include<stdio.h>
int main(void)
{
void p_add(int *a, int *b, int *n);
int i;
int a[10] = {3,7,1,2,8,9,0,4,6,5};
int b[10] = {7,3,9,8,2,1,10,6,4,5};
int c[10];
memset(c,0x00,sizeof(c));
p_add(a, b, c);
for(i = 0; i < 10; i++){
printf("a[%d]=%d b[%d]=%d c[%d]=%d\n", i, *(a++), i, *(b++), i, *(c+
+)); // エラー
}
return 0;
}
void p_add(int *a, int *b, int *n){
int i;
for(i = 0; i < 10; i++){
*(n++) = *(a++) + *(b++);
}
}