제목과 같은 선언이나,
int (*p)[10][20];
이런식으로 선언할 때 뒤의 숫자가 앞의 int 와 함께 해석되는게 어떤 원리인가요?
물론 변수나 선언 대상과 붙여서 해석해버리면 저런 용법의 의미가 없어지니 그냥 그렇게 해석하기로 했다 - 라고 하면 할말은 없는데 그래도 혹시 일관된 규칙이 있는걸까 해서요!
알려주시면 감사하겠습니다.
복잡한 선언을 읽을 때는, 변수 이름부터 시작해서 연산자 결합순서대로 결합시켜가며 영어로 읽으면 쉽습니다. 영어와 한국어의 어순이 다르기 때문에, 영어로 읽으면 쉬운 문제가 한국어로는 상당히 까다로워집니다. 자세한건 다음 페이지를https://wiki.kldp.org/wiki.php/CLangaugeComplexDeclaration
typedef의 경우에는, 일반 변수를 선언하는 거랑 비교할 때 변수 이름이 그대로 타입 이름이 된다고 생각하면 됩니다.mm int INT_ARRAY[10]; // 크기 10짜리 int형 배열 typedef int INT_ARRAY[10]; // 크기 10짜리 int형 배열을 INT_ARRAY란 이름의 타입으로 선언
감사합니다!
http://kldp.org/node/136778#comment-593415
이전에 이에 관해 댓글을 단 적이 있는데, 각각의 선언이 해석된 결과가 있습니다. 참고하시라고 올립니다.
저는 이렇게 생각했습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
복잡한 선언을 읽을 때는, 변수 이름부터 시작해서
복잡한 선언을 읽을 때는, 변수 이름부터 시작해서 연산자 결합순서대로 결합시켜가며 영어로 읽으면 쉽습니다.
영어와 한국어의 어순이 다르기 때문에, 영어로 읽으면 쉬운 문제가 한국어로는 상당히 까다로워집니다.
자세한건 다음 페이지를
https://wiki.kldp.org/wiki.php/CLangaugeComplexDeclaration
typedef의 경우에는, 일반 변수를 선언하는 거랑 비교할 때 변수 이름이 그대로 타입 이름이 된다고 생각하면 됩니다.mm
int INT_ARRAY[10]; // 크기 10짜리 int형 배열
typedef int INT_ARRAY[10]; // 크기 10짜리 int형 배열을 INT_ARRAY란 이름의 타입으로 선언
감사합니다.
감사합니다!
예제
http://kldp.org/node/136778#comment-593415
이전에 이에 관해 댓글을 단 적이 있는데, 각각의 선언이 해석된 결과가 있습니다. 참고하시라고 올립니다.
저는 이렇게 생각했습니다.
댓글 달기