인공지능을 알아가보자
포인터와 이중포인터! 본문
포인터
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> int main() { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 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] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 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