(*p = 20; 포인터로 변수 값 변경 가능)
ex)
int i = 10;
int *p;
p = &i;
#include <stdio.h>
int main(){
int i = 3000;
int* p = NULL;
p = &i;
printf("i = %d\n", i);
printf("&i = %u\n\n", &i);
printf("p = %u\n", p);
printf("*p = %d\n", *p);
return 0;
}
#include <stdio.h>
int main(){
int i = 10;
int* pi = &i;
printf("i = %d, pi = %p\n", i, pi);
(*pi)++; //pi 위치의 값 증가
printf("i = %d, pi = %p\n", i, pi);
*pi++;//pi 위치에서 값 가져온 후 증가
printf("i = %d, pi = %p\n", i, pi);
return 0;
}
값에 의한 호출
:main에서 swap(a,b)
함수선언-> void swap(int x, int y){}
//값을 복사
vs
참조에 의한 호출
:main에서 swap(&a,&b)
함수선언-> void swap(int *px, int *py){}
//주소를 전달
#include <stdio.h>
int main(){
int a[] = { 10, 20, 30, 40, 50 };
printf("a = % u\n", a);//포인터와 같은 역할 ->주소
printf("a + 1 = % u\n", a + 1);
printf(" * a = % d\n", *a);//값
printf(" * (a + 1) = % d\n", *(a + 1));
return 0;
}
java : 2일차 (0) | 2023.01.05 |
---|---|
java : 1일차 (0) | 2023.01.02 |
c언어:배열 문제 풀이 (0) | 2022.12.09 |
c언어: 배열 (0) | 2022.12.09 |
순환(recursion):재귀호출 (0) | 2022.12.09 |
댓글 영역