나는 C에서 우리가 쓸 수 있다면 알고 :왜 C 배열의 첫 번째 차원이 컴파일러에서 함수 매개 변수로 무시됩니까?
void myFunction(int x[30]) // 30 is ignored by the compiler
void myFunction(int x[][30]) // 30 is not ignored here but if I put say '40' in the first dimension
// it would be ignored.
이유는 첫 번째 차원은 컴파일러에 의해 무시가된다?
C 배열은 경계 검사를 수행하지 않으므로 첫 번째 차원이 무시되지 않는다는 것은 무엇을 의미합니까? 컴파일러는 무엇을 할 것인가? – ruakh
@ruakh 원형 인수. 형식이 일치하면 다른 호환되지 않는 크기의 배열을 전달할 수 없습니다. 또한, 크기 정보가있는 경우'sizeof' 연산자를 사용하여 배열 길이를 얻을 수 있습니다. – juanchopanza
@ juanchopanza : "원형 논증"이 무슨 뜻인지 잘 모르겠습니다. C 배열은 동일한 함수에서 선언되고 사용될 때라도 경계 검사를 수행하지 않습니다.(당신의 다른 예제는 좋은 것들입니다.) – ruakh