일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 러닝스칼라
- Javascript
- 딥러닝
- hacking
- Scala
- Python
- hackthissite
- deep learning
- Linux
- backend
- webhacking
- 경제
- ChatGPT
- 웹해킹
- Web
- 인공지능
- 파이썬
- c
- hackerschool
- c++
- 백엔드
- BOF 원정대
- 러닝 스칼라
- php
- BOF
- Shellcode
- 리눅스
- flask
- 챗GPT
- mysql
- Today
- Total
목록c (11)
jam 블로그
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. 다차원 배열 2차원 배열의 선언 2차원 배열의 선언과 의미 1차원 배열 2차원 배열 가로가 열 세로가 행을 가리킨다. 자료형 배열이름[행][열]; 이런식으로 선언하면 된다. 실제 메모리상의 그림 위와 같은 그림 처럼 메모리에 잡힌다. 2차원 배열! 선언과 동시에 초기화 (여기서 부터는 그림 귀찮아서 안 그립니다.) 초기화 case 1: 행 단위로 모든 요소들을 초기화 하는 경우 int main() { int somang[3][3]= { {1,2,3},{4,5,6},{7,8,9} }; } 위와 같이 배열의 개수 만큼 써서 초기화를 해주면 된다. {} 당 한 행으로 보면 된다. 초기화 case 2: 행 단위로 일부 요소들만 초기화하는 경우 int main() { int somang[3][3]= { {1..
I. 함수의 인자로 배열 전달하기 함수의 인자 전달 방식 인자 전달의 기본 방식은 복사이다. 배열을 함수의 인자로 전달하는 방식 #include void fct(int *arr2); int main() { int arr1[2] = {1,2}; fct(arr1); printf("%d\n",arr1[0]); return 0; } void fct(int *arr2) { printf("%d\n",arr2[0]); arr2[0] = 3; } fct함수를 호출 하면서 배열의 이름을 인자로 전달하는데 이때 배열의 이름 즉, 배열의 주소를 전달하는 것이다. #include int ArrAddr(int *pArr, int n); int main(void) { int arr[10] = {1,2,3,4,5,6,7,8,9,1..
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..