[C] 구조체 2. 구조체 포인터 응용

Sireal·2022년 1월 5일
0

C

목록 보기
7/12

구조체 포인터 쓰임새

  • 구조체 포인터에는 구조체의 주소가 들어가야함.
struct a  A;
struct a *ptr;
ptr = &A
  • 구조체 포인터를 통한 해당 주소의 구조체 멤버변수 접근법
(*ptr).member;
ptr->member;
  • 구조체내의 포인터를 사용하는 방법
    • -> 연산자는 * 연산자보다 우선순위가 높기 때문에 아래와 같은 코드 사용가능.
struct a{
	int value;
	int * pointer;
};

...

struct a A;
struct a *ptr;
ptr = &A;

int b = 0;

ptr->pointer = &b;	// 구조체 내에 포인터에 주소지정
*ptr->pointer = 33;	// 구조체 내에 포인터에 지정된 값에 변수 넣음.
  • 구조체의 멤버변수의 주소를 함수랑 같이 응용하는 법
// 구조체 선언
struct a{
	int value;
};
...
// 함수선언
int add_one(int * );
...
// main문
struct a A;
struct a *ptr;
ptr = &A;
// 멤버변수의 주소를 &과 합쳐 활용
int add_one(&A.value);
int add_one(&ptr->value);

구조체로 인자 전달하기

  • 구조체 초기화를 위해 함수를 만들었지만
    구조체를 초기화 시켜주지 않으면 사용할 수 가 없었다.
  • 구조체 포인터를 이용해서 초기화 시켜주기로 했다.
struct TEST{
	int age;
    int gender;
};

struct a A;
...
// 구조체 초기화 함수
set_human(&A, 10, 1);

...
int set_human(struct TEST * a, int age, int gender){
	a->age =age;
	a->gender = gender;
	return 0;
}

참고

profile
🚄계속 앞으로🚄

0개의 댓글