배열에 함수를 전달하는 것에 대해 의문의 여지가 있습니다.배열에 함수를 전달하는 코드
다음 코드 스 니펫을 고려하십시오.
void main()
{
int a[4]={10,20,30,40};
fun1(a);
}
void fun1(int a1[])
{
for(int i=0;i<4;i++)
{
printf("%d\n",a1[i]);
}
}
배열을 전달하는 것은 첫 번째 위치의 주소를 전달하는 것입니다. 그리고 위의 배열을 그 이름 (배열의 시작 주소)과 함께 전달해야합니다. 의심되는 점은 [4]가 자동 변수이기 때문에 주 기능에서 나올 때 죽어야하며 예기치 않은 결과가 나타납니다 (포인터가 매달려 있어야 함). 하지만 잘 작동합니다.
나는 이것과 매우 혼동 스럽다.
int a
을 f(&a)
으로 전달하더라도 자동으로 선언 된 경우 함수 f에 존재해서는 안됩니다 (주 기능의 로컬 변수).
이 또한 삭제하십시오.
문제가 해결 된 경우이를 수락 한 것으로 표시하십시오. –