일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 영상처리
- 딥러닝 공부
- 파이토치
- pytorch zero to all
- 모두의 딥러닝 예제
- object detection
- 골빈해커
- 케라스 정리
- 파이토치 강의 정리
- tensorflow 예제
- Pytorch Lecture
- C언어 공부
- c++
- matlab 영상처리
- c언어 정리
- MFC 프로그래밍
- c언어
- pytorch
- 모두의 딥러닝
- TensorFlow
- 미디언 필터링
- 팀프로젝트
- 딥러닝
- 딥러닝 스터디
- 파이토치 김성훈 교수님 강의 정리
- 컴퓨터 비전
- 김성훈 교수님 PyTorch
- 해리스 코너 검출
- 가우시안 필터링
- c++공부
- Today
- Total
목록Programming Language/C Programming (20)
ComputerVision Jack
[다차원 배열 이해와 활용] C언어는 4차원 이상의 배열선언을 문법적으로 허용하고 있다. 2차원 배열 TYPE arr[행의 길이][열의 길이]; #sizeof() 함수를 이용하여 배열의 크기를 확인할 경우 행 x 열 x 자료형 크기이다. 2차원 배열 요소에 접근 이중 for문을 이용하여 행과 열에 대해 각각 접근한다. for(i = 0; i < row; i++) for(j = 0; j < col; j++) arr[i][j] 2차원 배열 메모리 할당 형태 2차원 배열도 메모리상에는 1차원의 형태로 존재한다. 2차원 배열 선언과 초기화 2차원 배열도 1차원 배열과 똑같이 초기화하면된다. 크기에 맞지 않게 초기화 하지 않으면 자동으로 0으로 초기화된다. 하지만 배열의 크기에 대한 명세는 행과 열 둘중에 하나는..
[함수 인자 배열 전달] 함수의 인자 전달 방법 : 복사 함수호출 시 전달되는 인자의 값은 매개 변수에 복사된다. 실제로 전달되는 것은 던져주는 매개 변수가 아닌, 매개변수에 저장된 값이다. 매개변수로 배열을 선언할 수 없다. 배열을 넘겨 받으려면 배열의 주소 값을 전달 받아야 한다. 배열을 함수 인자로 전달하는 방법 포인터 변수를 사용하여 매개 변수로 던져준다. void ShowArayElem (int * param, int len) { ..... } void ShowArayElem(int param[], int len) { ........} [Call-by-value & Call-by-reference] call-by-value : 함수 호출시 단순히 값 전달 call-by-reference : 메모..
[포인터와 배열] 배열 이름 배열 이름은 포인터. 값을 바꿀 수 없는 상수 형태의 포인터이다. 따라서 배열의 이름은 배열의 시작 주소 값을 의미하며, 값 저장이 불가능한 상수다. 배열은 시작 주소만 알면 자료형을 통해 다음위치를 예측할 수 있기 때문이다. 배열 이름도 포인터이기 때문에 *연산이 가능하다. 포인터를 배열의 이름처럼 사용할 수 있다. int *ptr = &arr[0]; #ptr[0] = arr[0]과 같은 의미이다. [포인터 연산] 포인터는 *연산 이외에도 증가 감소 연산자도 사용할 수 있다. int형 포인터 1증가 - > 주소값 4 증가 double형 포인터 1증가 - > 주소값 8증가 *(++ptr) : ptr에 저장된 값 자체를 변경 *(ptr+ 1) : ptr에 저장된 값은 변경되지 ..
[포인터] 포인터는 주소 값을 지칭한다. C언어에서 주소값을 시작번지만 표시한다. 크기를 알면 시작 번지를 통해서 끝 주소를 파악하기 때문이다. 포인터 변수 메모리의 주소 값을 저장하기 위한 변수 변수 형태 포인터, 상수 형태 포인터를 포함한다. int num = 10; int * ptr; 포인터 변수 ptr선언 ptr = # num의 주소 값을 ptr에 저장 #변수 선언은 * 표시, 값의 대입은 &연산자를 통해서 한다. ptr엔 num의 시작 주소가 들어간다. 시작 주소가 4이면 끝 주소는 8이다. int 크기가 4이므로. 포인터 변수 ptr이 int형 변수 num을 가리킨다. &연산자 오른쪽에 등장하는 피연산자의 주소 값을 반환하는 연산자. int, char, double : 자료형 int *..
[배열 이해와 선언] 배열 다수의 데이터를 저장하고 처리하는 경우에 유용하게 사용할 수 있는 것 배열은 선언 방식에 따라 1차원, 2차원 구조가 될 수 있다. 1차원 배열 선언 요소 int Arr[3]; int : 배열을 이루는 자료형 Arr : 배열의 이름 [3] : 배열의 길이 이렇게 Arr 배열을 선언하면, int형 변수 3개가 나란히 생성된다. 1차원 배열 접근 Arr[0] = 1; Arr[1] = 2; Arr[2] = 3; 즉 Arr[index] = value; 배열의 index + 1 요소에 value를 저장해라. 여기서 중요한 점은, 배열의 인덱스는 값이 1이 아닌 0부터 시작한다는 점이다. 또한 배열에 접근할 땐, 배열의 사이즈만큼 for문을 이용하여, 배열의 모든 요소에 순차적으로 접근이..
[함수 정의 및 선언] 프로그램을 구현할 때, 구현에 필요한 기능을 분석하고, 그 분석 결과를 바탕으로 작은 크기의 함수들을 디자인해야 한다. printf()함수 printf()함수 또한 반환값이 존재한다. 모니터에 출력할 문자열 길이를 반환한다. 함수의 4가지 형태 전달 인자가 있고, 반환 값이 있다. 전달 인자가 있고, 반환 값이 없다. 전달 인자가 없고, 반환 값이 있다. 전달 인자가 없고, 반환 값이 없다. return의 의미 함수를 빠져나간다. 값을 반환한다. 이러한 함수는 호출되기 전에 미리 정의가 되어 있어야한다. 따라서 함수의 선언을 상단에 정의하고 밑에서 구현하는 구조가 나오기도 한다. 함수를 선언할 때, 매개변수 이름을 포함해도 되고, 매개변수 이름을 생략해서 선언해도 된다. 또한 함수..
[C언어 조건문] if~else문 분기(조건)문의 기본이 되는 문. if문 : 독립적으로 사용되어 조건적 실행을 가능하게 한다. if문이 여러개 나열 되어 있을 때, 조건을 만족하는 if문이 발견되면 나머지 if문을 건너 뛴다. if(조건식) { } else문 : if와 더불어 하나의 문장을 구성하는 형태로 사용. if (조건식) { } else { } - 조건의 나머지 경우 else에서 처리 if~else if~ else문 if~else문은 두개의 블록 중 하나라를 선택해서 처리하는 구조, if ~ else if ~ else문은 셋 이상의 블록중 하나를 선택해서 처리하는 실행 구조. else if절은 얼마든지 추가할 수 있다. 조건이 만족하면 else까지도 건너 뛰고 실행된다. 삼 항 연산자(조건 연산..
[C언어 반복문] 반복문은 조건을 만족하는 동안, 특정 영역을 계속 반복하는 구조. while문 while문의 소괄호 안에는 반복의 조건을 명시하고, 조건이 만족되는 동안 중괄호 안에 존재하는 코드가 반복 실행되는 구조이다. while(조건식){ } 반복문 안은 들여쓰기를 사용하여 영역을 가시적으로 구분짓는다. 반복 대상이 하나인 경우 중괄호는 생략이 가능하다. while(조건) printf() 반복 조건안에 1을 사용하는 경우 무한루프를 실행한다. do~while문 do~while문도 반복문의 종류이다. 그러나 while문과는 반복의 조건을 검사하는 시점이 다르다. do~while문은 반복 영역을 최소 한번은 실행한다. do{ } while(조건); 따라서 절차적으로 접근한다고 하면 일반 while문은..