나는 c의 함수에 배열을 전달하는 동안 그것을 알고 싶었다. 패스를 얻는 배열 값 또는 전달 된 배열 주소 (참조)의 복사본입니까?배열이 c의 함수에 전달 될 때 전달되는 것은 무엇입니까? 배열 값 또는 참조 주소 복사?
-1
A
답변
0
전달할 배열 값 또는 전달 된 배열 주소 (참조)의 복사본입니까?
기술적으로, 도. C 함수에서 인수는 항상 값에 의해 전달됩니다. 배열 (변수)의 경우 함수 인수로 전달되는 동안 배열의 첫 번째 요소에 대한 포인터로 쇠퇴합니다. 평소와 같이 포인터가 값에 의해 전달됩니다.
그러나 다른 모든 포인터 유형 인수와 마찬가지로 호출 된 함수에서 포인터가 가리키는 값 (또는 포인터 연산을 통해 파생 포인터 인 경우 유효한 범위 내에있는 한)을 변경하는 경우 호출자 함수 내부의 실제 배열 요소 값도 영향을받습니다. 배열은 내재적 인 예에 대해 지적되어으로 감쇠 함수의 인수로서 건네
는
1
char * foo(char buffer[])
{
printf("sizeof buff= %d",buffer); // here you will get pointer size not original buf because buffer is decay to pointer as char *buffer
}
int main()
{
char buf[10]="hello";
foo(buf);
}
는 포인터 붕괴 이유 이유 시간 .IT이 모든 요소를 복사하는 데 더 많은 비용이다 배열을 호출하는 함수 매개 변수에 전달합니다. 그래서 암묵적으로 포인터로 쇠퇴합니다.
관련 문제
- 1. 배열이 C의 함수에서 전달되는 스택
- 2. 함수에 전달 PHP 배열 참조
- 3. 함수에 전달되는 동적 배열
- 4. C의 문자를 예상하는 함수에 int 배열 전달
- 5. C 배열이 전달 될 때 축소 됨
- 6. 배열이 함수에 전달 된 이유는 무엇입니까?
- 7. C의 배열 복사 C/C의 구조 복사
- 8. C의 NULL 배열에 실제로 포함되는 것은 무엇입니까?
- 9. 함수에 전달되는 C 구조체의 배열
- 10. 함수에 전달되는 C++ 2d 배열
- 11. C의 역 참조, 주소 및 배열 첨자 연산자 이해
- 12. 배열 포인터를 함수에 전달
- 13. Object C의 함수에 객체 배열 전달 및 객체 반환
- 14. C의 함수에 문자열 배열 전달하기
- 15. JS에서 bind와 함께 전달되는 것은 무엇입니까?
- 16. 복사 C의 문자열 배열 오류
- 17. 변수를 복사 할 때 배열 주소
- 18. 먼저 전달되는 것은 무엇입니까? 리스너
- 19. 함수에 포인터 배열 전달
- 20. C에서 포인터 (함수에 주소 전달)
- 21. 콜백 함수에 값 전달
- 22. C의 함수에 전달 된 2D 문자 배열 수정
- 23. 캐싱 데이터 집합 전달 값 또는 참조?
- 24. Fortran 함수에 배열 전달
- 25. 함수에 C++ 배열 전달
- 26. 함수에 다차원 배열 전달
- 27. 오라클 함수에 배열 전달
- 28. PHP 객체 전달 객체 : 참조 또는 값?
- 29. 배열을 함수의 인수로 전달할 때 실제로 전달되는 것은 무엇입니까?
- 30. 빈 배열이 ajax를 통해 함수로 전달 될 때 Array.Length = 1 인 이유는 무엇입니까?
배열을 C의 함수에 전달할 때 첫 번째 변수의 주소가 전달됩니다. – VatsalSura
함수에 전달 된 배열은 첫 번째 요소에 대한 포인터로 감소합니다. –
배열의 기본 주소가 전달됩니다. – Rafal