일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 러닝 스칼라
- BOF 원정대
- 인공지능
- 웹해킹
- hackerschool
- 챗GPT
- ChatGPT
- webhacking
- backend
- Shellcode
- c
- php
- mysql
- Linux
- BOF
- 파이썬
- 딥러닝
- 리눅스
- c++
- 러닝스칼라
- hackthissite
- deep learning
- Web
- Scala
- 경제
- 백엔드
- Javascript
- hacking
- Python
- flask
- Today
- Total
목록포인터 (5)
jam 블로그
I. 함수 포인터 함수 포인터란 무엇인가? 함수의 이름은 메모리상에 존재하는 함수의 위치를 기리키는 포인터. 함수 포인터의 포인터 타입은 어떻게 되는가? 함수 이름의 포인터 타입을 결정짓는 요수는 리턴형과 전달인자이다. double fct2(doubel a, double b) { double add = a+b; return add; } 위와 같은 함수가 있다면 리턴형은 double 이고 double 형 인자를 두 개 전달받는 포인터 타입이다. 라고 말 할 수 있다. 적절한 함수 포인터의 선언 int(*fPtr1)(int); 위와 같은 형태로 리턴형(*함수명)(인자값) 이런식으로 쓰면 된다. #include void Add(int a, int b); void SPrint(char *str1); int ma..
I. 2차원 배열 이름의 포인터 타입 2차원 배열 이름이 가리키는 것은? 1차원 배열이름과 마찬가지로 배열의 첫번째 요소를 가리키는 포인터 이다. 다음의 소스를 보자 #include int main() { int a[3][2] = {1,2,3,4,5,6}; printf("a[0] : %d\n",a[0]); printf("a[1] : %d\n",a[1]); printf("a[2] : %d\n",a[2]); printf("a : %d\n",a); printf("a[0][0] : %d\n",&a[0][0]); return 0; } 위의 소스의 결과값을 보다 시피 a나 a[0]나 &a[0][0] 다 같은 주소값이 나온다. 2차원 배열 이름 +1 : 배열 이름을 이용한 포인터 연산 #include int main..
I. 포인터의 포인터에 대한 이해 더블 포인터가 가리키는 것은 싱글포인터 int main() { double val = 3.14; double *ptr1 = &val; double **ptr2 = &ptr1; printf("val : %lf\n",val); printf("&val : %lf\n",&val); printf("ptr1 : %lf\n",ptr1); printf("&ptr1 : %lf\n",&ptr1); printf("*ptr1 : %lf\n",*ptr1); printf("ptr2 : %lf\n",ptr2); printf("&ptr2 : %lf\n",&ptr2); printf("*ptr2 : %lf\n",*ptr2); printf("**ptr2 : %lf\n",**ptr2); } 위의 소스를 컴..
I. 포인터와 배열의 관계 배열의 이름은 무엇을 의미하는가? 배열의 이름은 포인터다. 단 그 값을 바꿀수 없는 상수라는 점이 일반적인 포인터와의 유일한 차이점 #include int main() { int a[5] = {0,1,2,3,4}; printf("%d, %d\n",a[0],a[1]); printf("%d, %d\n",&a[0],&a[1]); printf("배열이름 : %d\n",a); return 0; } 위의 소스를 보면 처음의 printf는 a[0],a[1]의 값을 찍는거고 , 두번째 printf는 각각의 주소값을 세번째 printf는 배열이름에 대한 주소를 찍는다. 결과를 보면 &a[0]와 a는 같다. 비교조건/비교대상 포인터 배열이름 이름이 존재하는가? Yes Yes 이름은 무엇을 나타내..
I. 포인터란 무엇인가? 포인터란 메모리의 주소 값을 저장하기 위한 변수이다. 포인터는 타입에 상관없이 그 크기가 4바이트임을 알 수 있다. 포인터 선언하기 int n = 7; int *pN = n; 주소와 관련된 연산자 : &연산자, *연산자 주소값을 참조할 때 사용하는 연산자 : & 포인터가 가리키는 메모리 참조 : * #include int main() { int a =2005; int *pA = &a; printf("%d",pA); printf("%d,*pA); } *pA는 2005로 출력된다. pA는 a의 주소값이 들어가 있다. 포인터에 대한 예제 #include int main(void) { int a = 2005; int *pA = &a; printf("pA : %d\n",pA); print..