문제가 있습니다. 함수가 있고 특정 것을 이해하지 못합니다. 함수는 다음과 같습니다.배열이있는 포인터 함수
int F(int* x , int n){
int i , m=0
for (i=0;i<n; i++){
m=x[ i ] + m;
}
return m * m ;
}
나는 함수를 포인터와 정수로 호출합니다. 나중에 "for"을 수행하지만 행을 이해하지 못합니다.
m=x[ i ] + m;
x는 포인터가 아니기 때문에 배열입니다.
도와주세요.
그러면 x는 메모리 위치를 가리키고 +1합니다. 예를 들어 함수를
으로 호출하면n=10
x=&n
F(x,n)
이 함수는 이상한 음소를 반환합니다.
X는 위치 메모리를 n으로 가리키고, 나중에 위치 메모리를 n + 1로 가리 킵니다.
배열 색인은 포인터 유형에도 적용됩니다. 배열과 포인터는 더 많이 또는 덜 호환됩니다. –
** x [i] **는 ** \ * (x + i) ** –
과 같습니다. 메모리 위치가 +1됩니다. 예를 들어, n = 10, x = & n; F (x, n), 함수는 이상한 것을 반환합니다 –