본문 바로가기
비트 단기/c

10/30 복습 포인터부터

by woohyun22 2018. 11. 5.
주석참고


1
2
3
4
5
short a;
    short *b;
    a = 10
    *= 20;
    //포인터는 생성할때 부터 메모리를 가질 수 없다.
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
    short a=10;
    short *b;
    b = &a;
    //공유되었다고한다. 이때부터 b가 메모리를 가지기 시작
    //주소를 가지고있는 a가 b에게 주소를 준다.
    //메모리를 공유하면 주소가 같다.
    printf("%d %d\n", a, *b);//그냥 각자의 값을 나타냄
    printf("%d %d\n"&a, b);//a와 *b의 주소를 나타냄
    *= 20;
    printf("%d \n", a);//공유되어있으므로 a=20을 가짐
    a = 999;
    printf("%d \n", a);//다시 999 ->b도 999가 된다.
 
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
//포인터 변수는 가장최근에 받은 주소 한개만 기억 그 전것은 사라짐.
    short a = 10, b = 20;
    short *c;
    c = &a;//이제부터 메모리를 가짐
    *= 30;
    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 - 대입이 아니라 같은 값을 가진다고 보면됨?
    *= 300;
    printf("%d %d %d\n", a, b, *c);//999 300 300
 
    //&b=&a; 일반변수는 공유받을 수 없다.
cs



1
2
3
4
5
6
short a = 10;
    short *b, *c;
    b = &a;//10 10 -
    c = b;//포인터 끼리는 그냥 공유 (&안써도됨)
    *= 100;//100 100 100 (마지막값을 기억한다)
    printf("%d %d %d\n", a, *b, *c);//
cs



1
2
3
4
5
6
7
8
9
short a, *b;
    short *c, d;
    b = &a;
    c = &d;
    printf("%d %d\n"*b, *c);//쓰레기값 두개
    *= 0*= 100;
    printf("%d %d\n", a, d);//0 100
    b = c;//포인터끼리는 그냥 넣어도됨(b에다가 c 값을 공유)
    printf("%d %d %d %d\n",a,*b,*c,d);//0 100 100 100
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
short a = 10, b = 20;
    short *c, *d;
    c = &a;//10 20 10 -
    d = &b;//10 20 10 20
    short *t;
    //            a    b    c    d    t
    t = c;//    10    20    10    20    10
    c = d;//    10    20    20    20    10
    d = t;//    10    20    20    10    10
    printf("%d %d %d %d %d\n", a, b, *c, *d, *t);
    c = &a;
    printf("%d %d\n"&a, &b);
    c = &b;//d가 주소가 있다면 줄수 있음
    printf("%d \n", c);
cs


728x90

'비트 단기 > c' 카테고리의 다른 글

11/2 구조체 복습 앞부분 확실히 하기  (0) 2018.11.05
11/1 복습 포인터 보충1  (0) 2018.11.05
11/2  (0) 2018.11.02
11/1  (0) 2018.11.01
10/30 pointer  (0) 2018.10.31

댓글