[ 흥달쌤 유투브 강의 정리 ]
https://www.youtube.com/watch?v=_9ZFUkIJzNU&list=PLniy99c_7ZfrVN_3-mhDUfTLxggLW23l7&index=35
(35강) 구조체, 포인터 이동
* 구조체란?
여러 변수들을 모아서, 하나의 객체를 구성할 때 사용하는 사용자 정의 타입 객체.
* 구조체 구성
struct 구조체명
{
멤버변수1;
멤버변수2;
};
* 구조체 정의 및 사용
struct person
{
char *name;
int age;
};
struct person user1;
user1.name = "h user";
printf("%s", user1.name)
// h user
(구조체 선언 생략)
struct person
{
char *name;
int age;
}test;
test.name = "h user";
test.age = 40;
printf("%s : "%d", test.name, test.age);
// h user : 40
(포인터 변수 사용)
struct person
{
char *name;
int age;
};
struc person *p;
p -> name = "test_2";
p -> age = 40;
printf("%s : "%d", p -> name, p -> age);
// test_2 : 40
=> 300
구조체 뒤에 쓴 data, *p 각자의 객체 생성.
data | fp | 200번지 => fp를 가짐.
*P | fp | 300번지 => fp를 가짐.
p = &data => p에 data의 주소값(200번지)을 할당.
p 와 data 모두 같은 | fp | 200번지 를 가르킴.
( p -> fp ) = x + 1 => p가 가르키는 fp에 x + 1 할당. () 괄호부분을 하나의 변수로 보기!!
printf( '%d' , *(++(p -> fp)); => p가 가르키는 fp는 x + 1, 여기에 ++적용한 주소의 배열값.
x = {100, 200, 300, 400}
10 10 11 12 13
'정보처리기사 > c언어강의' 카테고리의 다른 글
[C언어(강의)] 29강~ 34강 (2차원 배열과 포인터, 포인터 배열) (0) | 2024.07.15 |
---|---|
[C언어(강의)] 25강~28강 (배열과 포인터) (0) | 2024.06.22 |
[C언어(강의)] 21강~24강 (배열, 포인터, scanf) (0) | 2024.06.22 |
[C언어(강의)] 19강~20강 (for, continue, break, 다중for문) (0) | 2024.06.22 |
[C언어(강의)] 14강~18강 (if문, switch문, 반복문, for문, while문, do~while문) (0) | 2024.06.02 |