char *array[10];
및
char (*array)[10];
차이는 무엇입니까? 나의 이해함으로써
,
- 사례 1 :
array
이[]
이*
보다 높은 우선 순위를 가지고 있기 때문입니다 크기 10- 의 문자 배열의 배열로 선언된다.
- 케이스 2 :
array
크기 10- 문자 배열에 대한 포인터로 선언이다 동일한 우선 순위를 가지며 이들은 좌측까지 평가
()
때문에[]
-권리. 그런 다음*
연산자가 평가됩니다.
내 이해가 맞습니까? 그것이 맞다하더라도, 나는 엄청난 혼란을 겪습니다. 누군가가 그 차이점을 조금 더 명확하게 설명해 주시겠습니까?
질문. 첫 번째는 문자 배열 배열이 아닙니다. 이것은 단순히 char to pointer 배열입니다. 두 번째로 ['()'와'[]'] (http://en.cppreference.com/w/c/language/operator_precedence)는 연산자와 우선 순위가 같지만 그 이상입니다. . 이들은 선언문입니다. 괄호는'[] '로부터'array'를 분리하고'*'와 결합 시키는데 사용됩니다. 네가 이해심에 가깝다고 들리는 군. – WhozCraig
@WhozCraig, 그 설명 주셔서 감사합니다 :) –