//포인터 = *
//ex1
/*
short a;
short *b;
a = 10;
*b = 20;//이 코드는 사용할수 없다. b= 생성할때부터 메모리를 가질수 없다.
*/
//ex2
/*
short a = 10;
short *b;
b = &a;//공유됬다 - 주소를 가지고있는a가 b에게 주소를 준다(이때가 *b 메모리가지기 시작)
//메모리 공유하면 주소가 같다
printf("%d %d\n", a, *b);//값
printf("%d %d\n", &a, b);//주소
*b = 20;//*b는 메모리가 존재함(a에게 받음)
printf("%d \n", a);//b가 라면20개를 나둠
a = 999;
printf("%d \n", *b);//공유되면 하나의 값이 바뀌면 공유된 값도 함께 바뀜
*/
/*
//ex3
//포인터 변수는 가장 최근에 받은 주소 한개만을 기억한다.
short a = 10, b = 20;
short *c;
//*c = 30;//지금까지 메모리가없음
c = &a;
printf("%d %d %d\n",a,b,*c);
*c = 30;//a에게 공유받았기 때문에 대입가능
printf("%d %d %d\n", a, b, *c);//30 20 30
c = &b;
a = 999;
printf("%d %d %d\n", a, b, *c);//999 20 20 - b의 값을 공유받음
*c = 333;
printf("%d %d %d\n", a, b, *c);//999 333 333
//&b = &a;//일반변수는 공유받을수없다!
*/
/*
//ex4
short a = 10;
short *b, *c;
b = &a;//b는a에게 공유받음 메모리 존재
c = b;//c도 b에게 공유받음 메모리 존재
*c = 100;
printf("%d %d %d\n", a, *b, *c);/100 100 100
*/
/*
//ex5
short a, *b;//일반,포인터
short *c, d;
b = &a;//주소는 받았지만 값이 없기에 출력하면 쓰레기값이 나온다.
c = &d;
printf("%d %d \n", *b, *c);
*b = 0, *c = 100;
printf("%d %d\n", a, d);
b = c;
printf("%d %d %d %d\n", a, *b, *c,d);
*/
short a=10 ,b=20;//일반,포인터
short *c, *d;
c = &a;
d= &b;
short *t;
t = c;//c=10 t=10
c = d;//c=20 d=20 t=10
d = t;//c=20 d=10 t=10
printf("%d %d\n",*c,*d);//20 10
printf("%d %d\n",a,b);//10 20
c = &a;
c = &b;//a 주소를 잊음
c = d;//d가 주소가있다면 줄수있음
'비트 단기 > c' 카테고리의 다른 글
11/2 (0) | 2018.11.02 |
---|---|
11/1 (0) | 2018.11.01 |
while, scanf,switch (0) | 2018.10.26 |
연산자 ++ -- for문 1~ (0) | 2018.10.25 |
10/24 c 제어문 1~10 (0) | 2018.10.24 |
댓글