일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- greedy
- 인프런
- 따라하며 배우는 C언어
- BOJ
- BASIC
- JavaScript
- Cleancode
- 따배씨
- 종만북
- C
- DP
- udemy
- 생활코딩
- dfs
- graph
- BFS
- Math
- php
- 따라하면서 배우는 C언어
- String
- 정수론
- programmers
- server
- Algorithm
- sorting
- web
- Python
- 백준
- Algospot
- C언어
- Today
- Total
목록따라하면서 배우는 C언어 (121)
몽상실현개발주의
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.15 포인터의 호환성 Compotaibility 문법적으로 가능하지만, 사용상 권장하지 않는 내용이 많이 포함됨 #include int main(){ int n = 5; double x; x = n; int* p1 = &n; double* pd = &x; pd = (double *)p1; return 0; } pointer의 형변환, 권장 X #include int main(){ int* pt; int (*pa)[3]; // 3개짜리 원소를 가진 배열의 포인터 int arr1[2][3] = {3, }; int arr2[3][2] = {7,}; int** pt2; // 이중 포인터 pt = &arr1[0][0]; return 0; } pt = &..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.14 2차원 배열과 포인터 이차원 배열은 이중 포인터를 사용하여 표현 가능 #include int main(){ float arr2d[2][4] = {{1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 6.0f, 7.0f, 8.0f}}; printf("%u\n", (unsigned)arr2d); // 4022334480 printf("%u\n", (unsigned)arr2d[0]); // 4022334480 printf("%u\n", (unsigned)& arr2d[0]); // 4022334480 printf("\n"); printf("%u\n", (unsigned)* arr2d); // 4022334480 printf("%u\n", ..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.12 포인터에 대한 포인터 (2중 포인터) 의 작동 원리 2중 포인터 : 포인터 변수의 주소를 저장 10.13 포인터의 배열과 2차원 배열 #include int main(){ int arr0[3] = {1, 2, 3}; int arr1[3] = {4, 5, 6}; // an array pointers int* parr[2] = {arr0, arr1}; for (int j = 0; j < 2; ++j){ for (int i = 0; i < 3; ++i){ printf("%d(==%d, %d, %d) ", arr[j][i], parr[j][i], *(parr[j]+i), *(*(parr + j)+i)); } printf("\n"); } retur..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.11 배열 매개변수와 const #include void print_array(const int arr[], const int n); void add_value(int arr[], const int n, const int val); int main(){ int arr[] = {1, 2, 3, 4, 5}; const int n = sizeof(arr) / sizeof(arr[0]); print_array(arr, n); add_value(arr, n, 100); print_array(arr, n); return 0; } void print_array(const int arr[], const int n){ for (int i = 0; i < n; ..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.10 const 와 배열과 포인터 #include int main(){ // type qualifiers : constm volatile, ... const double arr2[3] = {1.0, 2.0, 3.0}; const double* pd = arr2; *pd = 3.0; // pd[0] = 3.0; arr2[0] = 3.0; pd[2] = 1024.0; // arr2[2] = 1024.0; printf("%f %f\n", pd[2], arr2[2]); return 0; } const double arr2[3] = {1.0, 2.0, 3.0}; couble* pd = arr2; const로 서언한 배열을 pointer로 접근하여 수정 ..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.8 두 개의 포인터로 배열을 함수에게 전달해주는 방법 #include double average(double*, double*); int main(){ double arr1[5] = {10, 13, 12, 7, 8}; printf("Avg = %f\n", average(arr1, arr1+5)); return 0; } double average(double* start, double* end){ long count = end - start; double avg = 0.0; while(start < end){ avg += *start++;\ // count++; } avg /= (double)count; return avg; } 10.9 포인터 ..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.7 배열을 함수에게 전달해주는 방법 배열을 여러 함수에게 사용할 때 마다, 데이터를 복사 해주는 방식은 굉장히 비효율적 배열의 첫 주소를 알려주는 방식으로 해결 함수에서 배열을 입력 받을때, 내부적으로 pointer 로 받아 처리 c/c++ 의 프로그래밍 에서는 크기가 미리 정해진 배열보다는 동적할당 메모리를 배열처럼 이용하는것이 주 사용 하는 방법 동적할당 메모리를 사용 할때에는 pointer 를 이용함 #include double averge(double arr[], int n); int main(){ double arr1[5] = {10, 13, 12, 7, 8}; double arr2[5] = {1.8, -0.2, 6.3, 13.9, 2..
따배씨 - 따라하며 배우는 C언어 10강 배열과 포인터 10.6 2차원 배열 연습문제 #include #define MONTH 12 #define YEARS 3 int main(){ // double years2016[MONTH] = { -3.2, 0.2, 7.0, 14.1, 19.6, 23.6, 26.2, 28.0, 23.1, 16.1, 6.8, 1.2}; // double years2017[MONTH] = {-1.8, -0.2, 6.3, 13.9, 19.5, 23.3, 26.9, 25.9, 22.1, 16.4, 5.6, -1.9}; // double years2018[MONTH] = {-4.0, -1.6, 8.1, 13.0, 18.2, 23.1, 27.8, 28.8, 21.5, 13.1, 7.8, -..