메모리의 주소체계
하나의 주소 값은 1바이트 단위로 할당.
변수와 메모리
char형 : 1byte
short형 : 2byte
int형 : 4byte
float형 : 4byte
double형 : 8byte
포인터 : 주소를 가지고 있는 변수
-포인터 변수와 함께 사용하는 연산자
&: 변수의 주소값을 나타냄(주소 값 가져올때 제일 첫번째 바이트의 주소값을 가져옴)
*: 포인터가 가리키는 메모리 참조
포인터 기본규칙
▷포인터 변수 선언할때 변수의 자료형과 같아야함
▷포인터는 가리키는 대상의 크기와 상관없이 4바이트로 선언됨.
TYPE val;
TYPE * ptr;
ptr = &val;//변수의 주소 저장
(TYPE * ptr = &val;//선언 동시에 초기화 가능)
*연산자(간접 참조 연산자)
int main(void)
{
int num=10;
int* pnum = #
*pnum=20;
printf("%d", *pnum);
}
여기서 *pnum은 num의미함.
포인터 변수도 값의 변경 허용
-값을 서로 바꾸거나 할때 사용가능
NULL포인터와 포인터 형변환
초기화해주지 않으면 변수들이 쓰레기값을 갖고있음.
널 포인터는 상수 0
안전성 위해 포인터 변수는 NULL로 초기화.
'Computer Science > C&C++' 카테고리의 다른 글
[C언어] 문자열 관련 (0) | 2021.05.16 |
---|---|
[C언어] 포인터 배열, 헷갈리는 부분들 (0) | 2021.05.13 |
[C언어] dptr을 이용해 *ptr1과 *ptr2 관계 서로 바꾸기 (1) | 2021.05.10 |
[C언어]별 삼각형 출력(직각 삼각형, 이등변 삼각형, 역이등변 삼각형) (0) | 2021.04.21 |
[C언어] 곱하기 출력(세자리수*세자리수 곱하기 과정) (0) | 2021.04.21 |