본문 바로가기

Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
더보기
Archives
Total
Today
Yesterday
관리 메뉴

인공지능을 알아가보자

포인터와 이중포인터! 본문

Emotion

포인터와 이중포인터!

lis29188 2018. 4. 11. 01:48

 포인터  

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main()
{
    int a[10= { 123456789 }, b;
    int *p;
    printf("0~8번중 인덱스 번호(b)를입력하시오:");
    scanf("%d"&b);
    p = a;
    printf("b번의 숫자:%d\n"*(p + b));
    printf("b번의 주소:%d\n", (p + b));
}
cs

 b번쨰의 숫자는 p가 배열이므로 이미 메모리에 있는 주솟값을 입력받고 포인터떄문에 예를들어 b가 3을 입력받으면 4번쨰 인덱스에 있는 4라는 값이 출력됩니다

************************************이중  포인터***************************************

이중 포인터

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
    int a[10= { 123456789 }, b;
    int *p,**p2;
    printf("0~8번중 인덱스 번호(b)를입력하시오:");
    scanf("%d"&b);
    p = a;
    p2 = &p;
    printf("b번의 숫자:%d\n"*(*p2+b));
    printf("b번의 주소:%d\n", (*p2+b));
}
cs

b번째 숫자를 출력하기위해 위에 포인터의 예와 같이 한다면 응답없음이 뜨고 종료될겁니다 왜냐하면 위에는 포인터 기호를 1번만써주어도 배열인 a까지에 도달이 되지만 이중포인터인 p2에 포인터기호를 한번만 써주게되면 p에 p2+b의 값이 제대로 전달되지 못해서 역참조를 하고 그다음에 또한번 역참조를 해주어야합니다

'Emotion' 카테고리의 다른 글

재귀함수를 이용한 피보나치 수열  (0) 2018.05.02
함수를 이용한 사칙연산 계산기  (0) 2018.05.02
함수를 이용한 x*x+1구하기!  (0) 2018.04.05
별찍기(6)  (0) 2018.04.02
별찍기(5)  (0) 2018.04.02
Comments