C에 입문하면 포인터라는 장벽이 있다. 거기에 2차원 포인터 배열 들어가면 머리 속이 뒤죽박죽이다. 그래서 나의 머리를 정리하게 위해 포인터 배열을 정리해보았다. 포인터의 산술연산을 사용하는 경우 포인터가 배열인 것 처럼 사용할 수 있고 연산도 포인터와 배열이 비슷하다. 이 두가지의 공통점과 차이점을 살펴보자 1차원 배열과 포인터 우선 아래 예제를 살펴보자. #include int main() { int arr[10]; int num = sizeof(arr) / sizeof(arr[0]); for (int i = 0; i < num; ++i) arr[i] = (i + 1) * 100; int* ptr = arr; printf("%p %p %p\n", ptr, arr, &arr[0]); // 0x7ffda..
포인터 정의 및 사용 변수를 선언한다는 것은 변수의 이름을 통해서 메모리공간을 사용하는 것이다. 프로그램을 효율적으로 짜기 위해서는 메모리가 어디에 위치해 있고 얼마나 많은 메모리를 사용해야하는지 알아야 한다. 크기가 큰 프로그램을 만들어서 많은 양의 데이터를 사용하면 많은 양의 데이터를 복사해서 여러 곳에서 사용하는 것은 낭비이다. 이렇게 하면 데이터를 복사하는데 시간도 걸리고 메모리도 낭비된다. 데이터가 어디에 있는지 알고 프로그램을 작성하면 프로그램이 효율적으로 작동할 것이다. 포인터는 메모리 주소를 저장하여 가리키는 간접적으로 역활을 한다. 포인터를 선언해줄 때는 아래와 같이 변수 명 앞에 *를 붙여 사용한다. int a = 7; int *a_ptr = &a; double b = 2; double..
- Total
- Today
- Yesterday
- 자바스크립트
- JSON
- Linux
- variable
- SQL
- Kernel
- tailwind
- C
- 미라클모닝
- JavaScript
- 오늘의 공부
- 라즈베리파이
- Til
- 재미있는
- js syntax
- yocto
- QT
- JS
- Python
- var
- 모닝독서
- 스타벅스
- NestJS
- 포인터
- raspberrypi
- 초아
- CSS
- 20.03.11.(목)
- tailwindcss
- opencv
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |