(Pointer) 대. ¶
란?
란, 떤 변 ''를 는 변다. )
변 | 내 | |||
1000 | a | 13 | ||
1004 | b | 14 |
int a = 13; int b = 14; 라는 가능며, 메모리 떤 는 13 라는 데는 a라는 변 나내다.
기 가 1000 1004 는 int가 4byte기 때문다.(기 는 를 든 것)
a = 14; 라는 명령를 a 내 14로 바꿀 다. 그리고 printf("%d", a); 라는 명령를 바뀐 것 다.
a라는 것 a라는 변가 나내는 (1000) 내 나내는 것다.
a 를 는 방법는 '&' 붙는 방법 다. printf("%u", &a); 결과값 1000다.(%u 맞나? ㅋㅋ 보길. 맞꺼 %u는 값 는 .)
만 INT 를 나내는 변 IP를 고 면 int* ip; 라고 면 된다.
int *ip; 가능 다.(게 더 .)
를 들 int *ip, i; 렇게 면 뒤 i는 반 int로, ip는 INT로 된다.int *ip; 가능 다.(게 더 .)
결과값 : 13 13
만 를 '는 모르는 경가 많다.-_-;
내 값 무리 바꿔봤 변 내 바뀌 는다. 것 디나 게 기 .
)
)
void add(int a, int b, int* cp) {
*cp = a + b; // cp라는 가 가리는 값 a + b로 바꿔다(main c). }
int main() {
int a = 13, b = 14, c;
add(a, b, &c); // a b 값, c 를 는다. printf("%d", c); // 결과값 : 27
}
배과 ¶
과 ¶
(맨 밑 고기 르면 고, 기 밑 내 기. 내 바꿔 되만 못 ㅋㅋ)
를 단 로그램 ¶
과 반 3개 력고 를 edit라는 2 력 람 다 력기. ) 1
3
김 5
- 2 람 -
다 4
- 결과 -
1
다 4
김 5
3
김 5
- 2 람 -
다 4
- 결과 -
1
다 4
김 5
배 동 로?! ¶
바로 배 모두 력는데, printf("%d", *(ap + @)) 로 력보. 기 모든 값들 력려면 @ 각각 떤 가 들가는 보고 그런 명기.
김 ¶
김 ¶
배 동 로 :
#include <stdio.h>
int main()
{
//: 기 ap+1 1 1byte 1 라 sizeof(int) * 1 1다. 따라 for문 로 때는 ap + i로 면 된다.
{
int a5 = {3,4,2,1,8};
int* ap = a;
printf("%d\n", *ap);
printf("%d\n", *(ap+1));
printf("%d\n", *(ap+2));
printf("%d\n", *(ap+3));
printf("%d\n", *(ap+4));
return 0;
}int* ap = a;
printf("%d\n", *ap);
printf("%d\n", *(ap+1));
printf("%d\n", *(ap+2));
printf("%d\n", *(ap+3));
printf("%d\n", *(ap+4));
return 0;
//: 기 ap+1 1 1byte 1 라 sizeof(int) * 1 1다. 따라 for문 로 때는 ap + i로 면 된다.
를 단 로그램 :
#include <stdio.h>
int main()
{
{
char Name110, Name210, Name310;//
char *NameC;//변될
int Num1, Num2, Num3;//
int *NumC;//변될
printf(" 람 과 를 력 : ");
scanf("%s %d", Name1, &Num1);
printf("\n두 람 과 를 력 : ");
scanf("%s %d", Name2, &Num2);
printf("\n 람 과 를 력 : ");
scanf("%s %d", Name3, &Num3);
NameC = Name2;//배 므로 Name2 '&' 붙 는다.
NumC = &Num2;//Num2는 가 므로 '&' 붙 다.
edit(NameC, NumC);// NameC NumC, 를 edit로 달.
printf("\n바뀐 결과 : %s %d %s %d %s %d\n", Name1, Num1, Name2, Num2, Name3, Num3);
return 0;
}char *NameC;//변될
int Num1, Num2, Num3;//
int *NumC;//변될
printf(" 람 과 를 력 : ");
scanf("%s %d", Name1, &Num1);
printf("\n두 람 과 를 력 : ");
scanf("%s %d", Name2, &Num2);
printf("\n 람 과 를 력 : ");
scanf("%s %d", Name3, &Num3);
NameC = Name2;//배 므로 Name2 '&' 붙 는다.
NumC = &Num2;//Num2는 가 므로 '&' 붙 다.
edit(NameC, NumC);// NameC NumC, 를 edit로 달.
printf("\n바뀐 결과 : %s %d %s %d %s %d\n", Name1, Num1, Name2, Num2, Name3, Num3);
return 0;