#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int a[] = {1,2,3,4,5};
int b[] = {0,0,0,0,0};
int *p = b;
for (int i =0; i < 5; i++)
{
b[i] = a[i]+1;
*p = a[i]+1;
p++;
}
for (int i = 0; i < 5; i++)
{
printf (" %i \t %i \t %i \n", *p++, b[i], a[i]);
}
return 0;
}
이 코드에서는 왜 a와 b에 대한 결과를 얻지 만 포인터의 값은?c 포인터 및 배열
* p는 b [0] = a [0] +1입니다. 그렇지 않습니까? 그래서 p ++은 b에 대해 다음 주소를 의미하므로 b [1] = a [1] +1입니다.
ie
*p b a
1 2 1
2 3 2
3 4 3
4 5 4
5 6 5
을 추가하는 것입니다 생각 : 그것은'* P B 형 A'가 아닌'A B의 *의 p'해야합니다. – dasblinkenlight
예, 저도 했어요. Fixed – user2135885
변경 저항을 위해 int b [sizeof (a)/sizeof (a [0])] = {...}를 사용하고 '5'값을 같은 용어로 대체하십시오. 이렇게하면 배열'a'을 바꿀 수 있으며 모든 것이 잘 될 것입니다. – glglgl