int const * p; // 1 int * const p; // 2 int const * const p; // 3 const int * p; // 4 p = (int *)0x1000; // 가 p++; // 나 *p = 100; // 다 a = *p; // 라 const는 위치에 따라서 의미가 헷갈린다.const는 후식이다. (앞에 있는 애를 상수화) 따라서 1번 - int2번 - *3번 - int, *4번처럼 맨 앞에 붙은 경우 예외적으로 뒤를 상수화시킨다. int 결국1번 - 값 2번 - 주소3번 - 주소, 값4번 - 값변경이 불가 번호 별 불가능한 것은?1 - 다 (나 번은 p++은 포인터의 주소 변경이다. 가능함)2 - 가, 나3 - 가, 나, 다4 - 다
#include // 40을 출력하려면? int *f1(void) { static int a[4] = { 1,2,3,4 }; return a; } int *f2(void) { static int a[4] = { 10,20,30,40 }; return a; } int *(*fa[2])() = { f1, f2 }; int f4(void) { return 1; } ?? func1(void) { return fa; } ? ? func2( ?? p ?? ) { return func1()[p()]; } void main(void) { printf("%d\n", func2(f4) ? ? ); } /* int *f1(void) { static int a[4] = { 1,2,3,4 }; return a; } int *f..
#include struct _st { int num; char * name; }; // ARK를 인쇄하려면? ? ? f2(void) ? ? { static struct _st a[2][3] = { {1,"KIM"}, {2,"SONG"}, {3, "KI"} }, { {4, "KANG"}, {5, "PARK"}, {6, "LEW"} }}; return a; } ? ? f1(int num) ? ? { return f2()[num]; } void main() { printf("%s\n", f1(0)); } /* // a -> struct _st [2][3] -> 배열이니 [2]를 포인터로 struct _st(*f2(void))[3] { static struct _st a[2][3] = {{{ 1,"KIM" }..
#include ? ? f2(void) ? ? static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return &a; } ? ? f1(void) ? ? return f2()[0]; } void main() { printf("%d\n", f1 ??); system("pause"); } /* // a -> int [3][4] // &a -> int (*)[3][4] int (*f2(void))[3][4]{ static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return &a; } // f2() -> &a 리턴 // f2()[0] -> a int (*f1(void))[4]{ return f2()[0]; } // f1() ->..
#include ? ? f2(void) ? ? static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } ? ? f1(void) ? ? return f2()[2]; } void main() { printf("%d\n", f1 ??); system("pause"); } /* int(*f2(void))[4]{ static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } // f2는 int (* (void))[4] 를 리턴한다. // f2()의 타입은 int (*) [4] // f2()[2]의 타입은 int [4] // 배열 상태이기 때문에 int *로 변경한다. int(*f1(void)) { re..
#include ?? f2(void) ?? static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } ?? f1(void) ?? return f2; } void main() { printf("%d\n", f1()()[1][2]); system("pause"); } /* int (*f2(void))(int) { static int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; return a; } // f2 또한 함수이기 때문에 * 하나 추가하는 것을 실수하지 말 것 int (*(*f1(void))(void))[4]{ return f2; } */
#include int a[2][3] = { {1,2,3},{4,5,6} }; int b[2][3] = { { 10,20,30 },{ 40,50,60 } }; int(*c[2])[3] = { b, a }; int(**p)[3] = c; int (*f1(void))[3]{ return c[1]; } int (*(*f2(void)))[3] { return c + 1; } int(*f3(void)){ return a[0] - 1; } int(**f4(void))[3]{ return p; } int(*(*f5(void))[2])[3]{ return &c; } // 6을 출력하려면? int main() { printf("%d\n", f1()[1][2]); printf("%d\n", f2()[0][1][2]);//..
#include int a[2][3][4] = { {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, {{10,20,30,40},{50,60,70,80},{90,100,110,120}} }; // 100을 출력하려면? void f1(int *p) { printf("%d\n", p[17]); } void f2(int (*p)[4]) { printf("%d\n", p[-1][1]); } void f3(int (*p)[3][4]) { printf("%d\n", p[1][2][1]); } void f4(int (*p)[3][4]) { printf("%d\n", p[-2][2][1]); } void f5(int (*p)[2][3][4]) { printf("%d\n", p[0][1][2][1]); } ..
#include int main() { int *p = malloc(sizeof(int)); printf("%#.8x\n", p);// p가 가리키는 주소 printf("%#.8x\n", p + 1);// 4byte 증가 printf("%#.8x\n\n", &p + 1);// p가 저장된 주소 + 4byte int a[4]; printf("%d\n", sizeof(a));// 16 printf("%#.8x\n", a); printf("%#.8x\n", a + 1);// 4byte 증가 printf("%#.8x\n", &a);// a와 동일 printf("%#.8x\n\n", &a + 1);// 16byte 증가 char **p2 = (char**) malloc(100 * sizeof(char*)); pr..
#include int a[12] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; int main() { int *p = a; char *q = (char *)a; int(*r)[4] = (int(*)[4])a; int(*s)[3] = (int(*)[3]) a; int(*t)[2][3] = (int(*)[2][3])a; printf("%d %d\n", p[0], p[1]);// 1 2 printf("%d %d\n", q[0], q[1]);// 1 0 -> little endian 구조 생각하며... 10 00 00 00 저장 printf("%#.8x , %#.8x\n", r[0], r[1]);// 1000 1010 printf("%#.8x , %#.8x\n", s[0], s[1]);// 10..
- Total
- Today
- Yesterday
- bilateral filter
- hough transform
- Sobel
- equalizing
- black top hat
- high pass filter
- Line Detection
- direction detection
- adaptive thresholding
- OpenCV
- erosion
- mean filter
- top hat
- upsampling
- Low pass filter
- difference of gaussian
- 영상처리
- canny
- pyrUp
- laplacian of gaussian
- median filter
- dilation
- 캐니 엣지
- Filter
- canny operator
- morphological operation
- gradient
- segmentation
- morphology
- pyrDown
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |