#include int main() { int a[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} }; // 주소에서 덧셈 연산은 내용을 고려해서 계산된다. printf("%x\n", a);// 1000 printf("%x\n", a[0]);// 1000, a[0] type : int [4] , 내용 type : int printf("%x\n", a[0] + 1);// 1004, 4 증가 , a[0] type : int [4] , 내용 : int , 연산 4 증가 printf("%d\n", *a[0]);// 1 printf("%d\n", *(a[0] + 1));// 2 , a[0][1] 동일 printf("%x\n", *a);// 1000 , *a type : int [4] ..
#include // 배열 parameter int sum(int b[4]) {// int b[4] -> int * b로 바꿔도 상관없다. int i, sum = 0; for (int i = 0; i < (sizeof(b) / sizeof(b[0])); i++) { sum += b[i]; } return sum; } void main(void) { int a[4] = {1, 2, 3, 4 }; printf("%d\n", sum(a)); system("pause"); } /* 결과는 10이 나올 것 같다. 하지만 결과는 1이 나온다. 그 이유는 sum(a)에서 a은 포인터로 넘겨졌기 때문이다. 따라서 int b[4] == int * b이며 b의 type은 int *이다. int *은 4byte이기 때문에 ..
#include // 1차원 배열 void main(void) { int a[4] = { 10, 20, 30, 40 }; // 주소는 1000으로 가정 printf("%d\n", a[0]);// 10 printf("%#.8x\n", &a[0]);// 0x1000 printf("%#.8x\n", a);// 0x1000 printf("%d\n", a[0] + 1);// 11 printf("%#.8x\n", a + 1);// 0x1004 printf("%d\n", *a);// 10 printf("%d\n", *(a + 1));// 20 printf("%#.8x\n", &a);// 0x1000 printf("%#.8x\n", *&a);// 0x1000 printf("%#.8x\n", &a + 1);// 0x10..
#include /* Little, Big endian 데이터가 실제 메모리에는 어떻게 저장될까? */ void main(void) { int a = 0x01234567; /* a는 스택영역에 저장될 것이다. int형은 4byte이기 때문에 (주소는 편의상 0x1000 이라고 가정한다.) 주소 - 데이터 1000 - 0x?? (1byte) 1001 - 0x?? (1byte) 1002 - 0x?? (1byte) 1003 - 0x?? (1byte) 위와 같이 저장될 것이다. 참고로 1byte는 8bit이다. 따라서 16진수로 2개(?)를 저장할 수 있다. 0xE3 이렇게.. 4bit는 0~15(F)를 표현할 수 있기 때문에 아무튼 어떻게 저장되는지 출력을 해보자. char type은 1byte이기 때문에 이..
#include /* 16진수 10 : A 11 : B 12 : C 13 : D 14 : E 15 : F */ void main(void) { int *p, *q; p = (int *)0x1008; q = (int *)0x1000; // 주석처리된 부분은 에러가 발생한다. // printf("%X\n", p*q); // printf("%X\n", p/q); // printf("%X\n", p+q); printf("%X\n", p-q);// 2 -> 포인터 사이의 뺄셈은 간격을 의미한다. 주소와 데이터 타입 고려 printf("%X\n", q-p);// FFFFFFFE -> -2 // printf("%X\n", p*2); // printf("%X\n", p/2); printf("%X\n", p+2);// ..
// pointer 와 선치 후치 연산자 // source.cpp #include #include int main() { int cnt = 0; char *p = "Embedded"; while (*p) { if (*p++ != 'd') {// *++p 의 경우와 비교를 한다. cnt++; } else { break; } } printf("%d\n", cnt); system("pause"); } /* 출력 : 4 *p++ 같은 경우에는 먼저 내용을 꺼내고 p를 증가시킨다. -> E부터 비교 *++p 경우에는 먼저 주소를 증가시키고 그 주소의 내용을 꺼낸다. -> 이 경우에는 m부터 비교 -> 출력 : 3 (*p)++ 경우에는 먼저 내용을 꺼내고 내용의 결과를 1 증가시킨다. */ // 추가로 (*p)++..
staticFunc1.cpp #include #include extern void func(void); static int sqr(int a) { return a*a; } void main(void) { func(); printf("%d\n", sqr(3)); system("pause"); } staticFunc2.cpp #include static int sqr(int a) { return a * a * 2; } void func(void) { printf("%d\n", sqr(3)); } 함수에도 static이 적용된다. 출력은 18 9각각의 파일에 static int sqr(int a) 함수가 있기 때문에 그 함수을 실행한다
#include #include int a = 10; static int s = 20; void f1(void); void main(void) { static int s; // s = 0이 자동으로 된다. static. a++, s++; // 1. a = 11, s = 1 printf("%d %d\n", a, s); f1(); a++, s++; printf("%d %d\n", a, s); // 3. a = 12, s = 2 f1(); system("pause"); } void f1(void) { int a = 1; static int s = 2; a++, s++; // 2. a = 2, s = 3 // 4. a = 2, s = 4, a는 static이 아니기 때문에 2번째 호출 시 다시 a = 1부터 시..
// 티스토리가 처음이라 코드를 올리는 과정에 이상하게 올라가진다.. 급하게 소스코드 에디터를 야매로 설치한 탓에 발생한 현상 같다. HTML 특징 같은데.. 를 넣으면 가 자동 추가되는..? 나중에 고쳐야겠다. 혹시나 보시는 분이 계시다면 잡다한 오류는 무시해주세요! // 나를 위한 메모 : 사이에 코드를 넣을 것 extern은 다른 파일의 변수나 함수를 참조하기 위해 사용한다.static은 한 파일에서 전역변수로 쓰지만, 다른 파일의 참조를 막고 싶은 경우에 사용한다. Exam01.cpp #include int a; // 전역변수는 static이 자동으로 선언되며 static은 초기화를 안해도 0의 값이 들어간다. static int b = 10; extern int c; extern void fun..
- Total
- Today
- Yesterday
- laplacian of gaussian
- pyrDown
- dilation
- segmentation
- hough transform
- 캐니 엣지
- Low pass filter
- OpenCV
- bilateral filter
- high pass filter
- morphology
- gradient
- 영상처리
- erosion
- Sobel
- black top hat
- Filter
- canny operator
- canny
- mean filter
- upsampling
- pyrUp
- top hat
- median filter
- morphological operation
- Line Detection
- difference of gaussian
- equalizing
- direction detection
- adaptive thresholding
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |