본문 바로가기

C

12장. 포인터의 이해

int* A;	//int 형 포인터 a

[포인터란]

[포인터와 포인터 변수]

  • 메모리의 주소값을 저장하기 위한 변수
  • "포인터"를 흔히 포인터 변수라 한다.
  • 주소값과 포인터는 다르다
  • 포인터의 크기는 컴퓨터의 주소 체계에 따라 결정되며 , 32비트 시스템은 4 바이트다.

[포인터 타입과 선언]

포인터 선언시 * 연산자를 사용한다.

A형 포인터 (A*) : A형 변수의 주소값을 저장

int * a;// int형 포인터 a
float * b;// float 형 포인터 b

[주소관련 연산자]

  • * 연산자 : 포인터가 가리키는 메모리 참조
  • & 연산자 : 변수의 주소값 반환
int a=3;
int* b= &a;

printg("%d",a);		//3
printg("%d",b);		//19922456 :주소값
printg("%d",*b);	//3 : 메모리 참조값

[포인터에 다양한 타입이 존재하는 이유]

포인터 타입은 참조할 메모리의 크기정보를 제공한다. 

(정수 - 실수는 메커니즘이 다르기에)

 

[잘못된 포인터의 사용]

int main(void)
{

	int * PA;	//쓰레기 값으로 초기화
    *pa=10;	//어디인지도 모르는데 초기화 하는것은 위험한 일
    
    int* PB=100;	//100이 어디인지 모르는데 초기화는 위험하다
    *PB=23;			
}

 

'C' 카테고리의 다른 글

14강 . 포인터와 함수에 대한 이해  (0) 2023.01.05
13강 . 포인터와 배열  (0) 2023.01.05
11장 . 1차원 배열  (0) 2023.01.05
9장 . C언어의 핵심 함수  (0) 2023.01.02
8장 . 조건에 따른 분기  (0) 2023.01.02