카테고리 없음

c언어 포인터는 왜 쓸까? 포인터 쓰는 이유 +( 수 바꾸기 call-by-value, call-by-reference)

CHIZI 2022. 5. 19. 15:33
728x90

1. malloc() 함수로 동적 메모리를 생성할 수 있고, 큰 용량의 데이터를 처리하는데 효율성이 높으며, 데이터를 분석 하기에도 편하다.  효율성이 높은 이유는 포인터는 변수를 참조할때, 속도가 빠르다고한다. (자료구조에서 중요함)

 

2. 동적 할당된 메모리 영역에 접근과 조작에 용이하다. 

 

결론 - > 속도가 빠르다.

 

앞으로 c/c++로 자료구조를 하거나 게임산업, 3D으로 취업을 하고싶다면? 포인터를 잘써야됨

속도를 0.1->0.01초로 바꾸는 작업을 다 포인터로 함 

 

문제 A B를 바꾸는 함수를 만드세요.  방법의 수 4개 

 

 

/*
#include <stdio.h>
#pragma warning(disable:4996);
int a, b;
void tmp() {
   int tmp = b;
   b = a;
   a = tmp;

}
int main() {
   
   scanf("%d %d", &a, &b);
   tmp();
   printf("%d %d", a, b);
   return 0;
}
//방법 1 전역

#include <stdio.h>
#pragma warning(disable:4996);

void tmp(int *a, int *b) {
   int tmp = *b;
   *b = *a;
   *a = tmp;

}
int main() {
   int a, b;
   scanf("%d %d", &a, &b);
   tmp(&a,&b);
   printf("%d %d", a, b);
   return 0;
}

//방법 2 포인터

#include <stdio.h>
#pragma warning(disable:4996);

void tmp(int &a, int &b) {
   int tmp = b;
   b = a;
   a = tmp;

}
int main() {
   int a, b;
   scanf("%d %d", &a, &b);
   tmp(a, b);
   printf("%d %d", a, b);
   return 0;
}
//방법3 주소를 이용

#include <stdio.h>
#pragma warning(disable:4996);


int main() {
   int a, b;
   scanf("%d %d", &a, &b);
   a = a ^ b;
   b = b ^ a;
   a = a ^ b;

   printf("%d %d", a, b);
   return 0;
}

//방법 4 XOR을 이용함
*/

728x90