IT 대장간

구조체 , 포인터, 함수 사용 본문

Programing/C & C++

구조체 , 포인터, 함수 사용

태장장이 2021. 2. 23. 16:20

 

 

 

1) 전역 변수로 구조체 (Struct) 정의

 

struct ProductInfo {
int num;
char name[100];
int cost;
};

이것은,

 = typedef struct {int num, char name[100], int cost} ProductInfo;

   로 풀어쓸 수 있다. 편의상 사진과 같이 사용하여도 무방.

 

 

2) ProductSale과 productswap 이라는 함수 정의

 

3) productswap 함수를 사용 ->call by reference 호출 방식으로 포인터를 통해 주소지의 값을 변경

 

4) 포인터로 받은 변수의 멤버값을 가져올때는 2가지 방법이 있다

 

  하나, (*a).cost => (*매개변수).멤버

     둘, a->cost  => 매개변수 ->멤버   (사용편이성 ▲)

 

5)구조체를 통한 변수 선언 시 다중 멤버값 지정 방법

: 구조체 변수명 = { 멤버값, 멤버값, 멤버값 } ;     

각 값마다 형식일치 해야함

 

6) 구조체는 메모리상에 배열과 같은 방식으로 주소값이 할당됨

 ex) 위 사진 중 my_product_1 의 주소값을 뜯어보면 4, 100 , 4 가 나옴

 

상품번호 : int 4바이트

상품이름 : char [100] 이므로 100 바이트

상품가격 : int 4

= 메모리상 108을 차지한다.

 

 

 

*ProductSale()은 별도 설명이 필요없어서 생략. 

: 단순연산 및 코드 실행에 해당 결과값 출력