본문 바로가기
안드로이드 웹앱 콘테츠 개발자 양성(국비지원)/c언어

2019.07.10 (수) 포인터 , 구조체

by 차누감 2019. 7. 10.

Pointer(참조변수) : 메모리 주소를 통해 Data를 제어하는 기법
데이터를 가지고 있는 주소를 가지고 데이터를 제어하는 기법 

 1)Pointer 변수 : 메모리 주소를 저장하는 변수 (*포인터 변수를 만들때 쓰는 기호)

 // (예) printf("%d",*p) 이때 * 역참조 연산자) 

 2)Pointer 상수 : 배열의 이름

포인터 변수선언 문법
자료형 *변수명 //(자료형은 Pointing하는 변수의 자료형)
&그러나 C언어에서는 주소가 0000 0000 ~ ffff ffff(16진수로 8자리이며, 1자리당 4개로 표현, 32bit) 4Byte면 모든 주소를 표현 가능 그래서 pointer변수는 무조건 4Byte로 만든다.

포인터 변수를 쓰는 이유
1)다른 지역(함수)의 지역 변수 제어
2)지역 배열변수를 함수의 파라미터로 전달
3)문자열 저장
4)동적메모리 (heap영역)의 사용

RAM
Code : 한번 저장되면 변경X // 상수, const, 코드(함수)
Data : 변경 가능, 처음 시작 메모리 차지 // 전역변수, 정적변수 ... 그리고 0으로 채워져 있음
Stack :  변경 가능, 삭제 가능 // 지역변수 ... 그리고 1100 1100...으로 채워져 있음
Heap : 사용자 메모리 역역 //< 1)생성 : malloc(byte숫자); 2)소멸() : free(지우고자 하는 메모리주소)


구조체(Struct) : 사용자 정의 자료형 (Datta Type)
서로 연관있는 변수를 묶어서 관리하는 기법




댓글