EASY7
[C언어 19강] 이중포인터 본문
이중포인터 : 포인터에 대한 포인터
주로 함수에서 처리된 결과를 다시 반환하고자 할 경우, 동적메모리 할당 시 사용
자료형 **변수명;
#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의 값이 나옴
'개발 공부 > C' 카테고리의 다른 글
[C언어 21강] %출력 형태 (0) | 2016.07.12 |
---|---|
[C언어 20강] 포인터식 / 배열 (0) | 2016.07.12 |
[C언어 18강] 포인터란? (0) | 2016.07.09 |
[C언어 17강] 두 문자열을 비교하는 strcmp() (0) | 2016.07.09 |
[C언어 16강] gets()와 scanf() 문자열 입력받기 (0) | 2016.07.08 |