본문 바로가기

Study/C C++

[두들낙서] 구조체

typedef

 - 기존 자료형에 별명을 붙인다

 - typedef 자료형 이름 순으로 선언한다

 주의 배열에 사용하면 선언부에만 대괄호를 쓰고, 사용할 때는 대괄호를 쓰지 않는다

 주의 포인터를 만들때 선언부에만 *를 쓰고, 사용할 때는 *를 쓰지 않는다

 ex) typedef int Int32;

      typedef int Pair[2];

      Pair point = {3, 4};  int point[2] = {3, 4};로 인식한다

 

구조체

 - 중괄호 내부의 요소들을 갖춘 자료형이다

 - 중괄호로 초기값을 설정해 줄 수 있다

 - 주로 전역변수로 선언해준다

 - 구조체의 메모리 크기는 중괄호 안 자료형들의 메모리 크기의 합과 같다

 주의 포인터를 사용할 때 괄호에 유의해야 한다  예제에서 확인

 주의 구조체도 자료형이기 때문에 call-by-value에 유의해야 한다

 ex) struct Point {  typedef struct {int x, y;} Point;와 같다

           int x, y;

           void moveRight() {x++;}

           int periphery() {return 2 * x + 2 * y;}

      };

      Point p = {1, 2};

      Point *q = &p;

      p.x = 3;

      p.y = 4;

      printf("%d\n", (*q).x);  *q.x는 *(q.x)와 동일하며 x는 포인터가 아니기 때문에 사용이 안된다

      printf("%d\n", q->y);  q->y와 (*q).y는 동일한 표현이다

'Study > C C++' 카테고리의 다른 글

[두들낙서] C++ 스타일 문법  (0) 2021.03.03
[두들낙서] 상수  (0) 2021.03.01
[두들낙서] 함수  (0) 2021.03.01
[두들낙서] 포인터  (0) 2021.03.01
[두들낙서] 배열  (0) 2021.02.28