일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sorting
- 따배씨
- php
- String
- BFS
- 백준
- Python
- udemy
- graph
- 따라하며 배우는 C언어
- 종만북
- Algospot
- web
- C
- Math
- BASIC
- greedy
- BOJ
- 생활코딩
- C언어
- 따라하면서 배우는 C언어
- JavaScript
- server
- Cleancode
- programmers
- dfs
- DP
- 인프런
- 정수론
- Algorithm
- Today
- Total
목록따라하면서 배우는 C언어 (121)
몽상실현개발주의
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.5 2차원 배열과 메모리 2차원 배열도 메모리는 1차원 #include int main(){ int arr[2][3] = { {1, 2, 3}, {4, 5, 6}}; printf("%d\n\n", arr[1][1]); for (int j = 0; j < 2; ++j){ for (int i = 0; i < 3; ++i){ printf("%d ", arr[j][i]); } printf("\n"); } return 0; } 배열의 값을 호출 할때, 메모리 구조 같은 순서로 호출하면 성능상 이득이 있음 #include int main(){ int arr[2][3] = { {1, 2, 3}, {4, 5, 6}}; int *ptr = &arr[0][0];..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.4 포인터 Pointer 와 배열 Array #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]); // 0x7ffeefbff410 0x7ffeefbff410 0x7ffeefbff410 ptr += 2; // arr += 2 // invalid printf("%p %p %p\n", ptr, arr+2, &arr[2]); // 0x7ffeefbff418 0x7ffeefbf..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.3 포인터의 산술 연산 Pointer Arithmetic #include int main(){ int* ptr = 0; printf("%p %lld\n", ptr, (long long)ptr); // 0x0 0 ptr ++; printf("%p %lld\n", ptr, (long long)ptr); // 0x4 4 return 0; } 주소값에 1 을 더하면, 다음 주소값이 나옴 다음 주소값: 자료형에 할당되는 메모리크기 만큼의 역역 뒤의 주소값 int -> +4 char -> +1 void는 산술연산 불가, 자료형이 없기 때문 뺄셈도 마찬가지로 빼기 동작 #include int main(){ int arr[10]; int* ptr1 = &ar..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.2 배열의 기본적인 사용 방법 #include #define MONTHS 12 // symbolic constant, mecro int main(){ int high[MONTHS] = {2, 5, 11, 18, 23, 27, 29, 30, 26, 20, 12, 24}; for (int i = 0; i < MONTHS; ++i) printf("%d ", high[i]); printf("\n"); float avg = 0.0; for (int i = 0; i < MONTHS; ++i) avg += high[i]; printf("Average = %f\n", avg / (float)MONTHS); return 0; } #include #define ..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.1 배열과 메모리 Array 선언 시, 연속된 메모리 공간을 할당 받게 됨 Array 의 index 는 0 부터 시작 int arr[4] = {2, 5, 11, 18}; arr = &arr[0] arr 가 할당 된 모든 주소값에 첫번째 주소값을 빼주고, 각 주소값에 할당된 size를 나누면 index number 가 나옴 이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다. http://blog.naver.com/atelierjpro 실리콘 밸리의 프로그래머 : 네이버 블로그 안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요...
따배씨 - 따라하며 배우는 C언어 9강 함수 9.17 포인터 변수의 크기 #include int main(){ char a; float b; double c; char* ptr_a = &a; float* ptr_b = &b; double* ptr_c = &c; printf("%zd %zd %zd\n", sizeof(a), sizeof(b), sizeof(c)); // 1 4 8 printf("%zd %zd %zd\n", sizeof(ptr_a), sizeof(ptr_b), sizeof(ptr_c)); // 8 8 8 printf("%zd %zd %zd\n", sizeof(&a), sizeof(&b), sizeof(&c)); // 8 8 8 printf("%zd %zd %zd\n", sizeof(char*..
따배씨 - 따라하며 배우는 C언어 9강 함수 9.14 포인터 Pointer 와 코딩 스타일 #include int main(){ int* a, b; // a 만 포인터, b는 정수 int* c, * d; // c 와 d 둘다 포인터 int* e; int* f; // 분리하는 표현법이 추천됨 return 0; } 9.15 NULL 포인터와 런타임 에러 #include int main(){ int a; printf("%p\n", &a); // 0x7ffeefbff488 printf("%d\n", a); // 86053 return 0; } 일반 변수를 선언 후 값을 대입하지 않으면, 쓰레기 값이 저장되어 있음 #include int main(){ int *ptr; printf("%p\n", ptr); // ..
따배씨 - 따라하며 배우는 C언어 9강 함수 9.13 포인터 Pointer 의 기본적인 사용 방법 #include int main(){ int a, b; a = 123; int *a_ptr; // * : asterisk a_ptr = &a; // & : address-of operator printf("%d %d %p\n", a, *a_ptr, a_ptr); // 123 123 0x7ffeefbff488 *a_ptr = 456; printf("%d %d %p\n", a, *a_ptr, a_ptr); // 456 456 0x7ffeefbff488 return 0; } int b = a_ptr; 주소값을 정수형에 저장하는 경우는 거의 사용하지 않음, 주의 #include int main(){ int a, b..