EASY7

[C언어 19강] 이중포인터 본문

개발 공부/C

[C언어 19강] 이중포인터

E.asiest 2016. 7. 10. 19:51

 

이중포인터 : 포인터에 대한 포인터

주로 함수에서 처리된 결과를 다시 반환하고자 할 경우, 동적메모리 할당 시 사용

자료형 **변수명;

#include<stdio.h>

void main()

{

int a=5, b=10;

int *p_1, **p_2;

printf("a의 주소 %d \n" ,&a);3078924

printf("p_1의 포인터 결과 %d \n", *p_1); 5

printf("p_2의 결과 %d\n" **p_2); 5

 

이중포인터는 M자형 그냥 포인터는 N자형이구나

 

#include<stdio.h>

void main()

{

int a=5, b=4700;

char *c=&a, *d=&b;

printf("c포인터 결과 %d\n", *c);

printf("d포인터 결과 %d\n", *d);

printf("b의 주소 %d \n d의 내용 %d\n", &b,d);

}

c포인터 결과 5

d포인터 결과 92

b의 주소 209875

d의 내용 209875

 

char은 1byte(-128~127)이고 int 4byte이다.

주소가 같다해도

그 값을 참조할 때 char은 1byte밖에 읽어오지 못함.

 

포인터는 int로 선언해주기!!

포인터 초기화 *p=null;

 

int *p=null;

double c=3.14;

*p=c;

하면 안됨!!! 포인터가 4바이트 값이 8바이트이기 때문에

포인터가 더 커야

 

**&p_1하면

*&이 붙어있으면 상쇄되는 것같다

의미는 p_1의 주소가 의미하는 것이 의미하는 것

 

*p_1=null;

printf("%d",*(p_1=&b));

하면 b의 값이 나옴 

 

 

 

Comments