[c] 포인터의 포인터
#include void pswap(int *p1, int*p2);int main(void){int A = 10, B = 20;int *pA, *pB; pA = &A, pB = &B; // Before callprintf("pA -> : %d\n", *pA);printf("pB -> : %d\n", *pB); pswap(pA, pB); // After callprintf("pA -> : %d\n", *pA);printf("pB -> : %d\n", *pB); return 0;} void pswap(int *p1, int *p2){int *temp;temp = p1;p1 = p2;p2 = temp;} 1. 모든 포인터 변수는 4바이트 메모리 공간2. 가리킨다라는 말과 주소값을 갖는다는 동의어이다 #incl..
2017. 5. 14.
[c] 함수의 인자로 배열 전달하기
#include void fct(int *arr2); int main(void){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;} 1. 함수 오랜만에 본다..2. 어레이를 선언하고 초기화 했는데 함수에서는 포인터 형태의 매개변수를 사용하네?3. 배열 이름은 첫 번째 요소의 주소 값을 의미하는 상수 포인터이다...4. 그래서 fct 함수의 매개 변수 타입이 int 형 포인터이다. #include int ArrAdder(int* pArr, int n); int main(void){int arr[10] = {1,2,3,4,5,6,7,8,9..
2017. 5. 14.
[c] 배열 요소로 포인터를 지니는 포인터 배열
#include int main(void){int a = 10, b = 20, c = 30;int* arr[3] = { &a, &b, &c }; printf("%d\n", *arr[0]);printf("%d\n", *arr[1]);printf("%d\n", *arr[2]); return 0;} 1. 배열 요소로 포인터를 넣을 수 있다.2. 포인터는 주소값을 저장하는 변수 이다. #include int main(void){char * arr[3] = {"Fervent-lecture","TCP/IP","I LOVE YOU"}; printf("%d \n", &arr[0]);printf("%d \n", &arr[1]);printf("%d \n", &arr[2]); printf("%s \n", arr[0]);pr..
2017. 5. 14.
[c] Pointer calculation
#include int main(void){int* ptr1 = 0;char* ptr2 = 0;double* ptr3 = 0; printf("%d, %d, %d \n", ptr1++, ptr2++, ptr3++);printf("%d, %d ,%d\n", ptr1, ptr2, ptr3);return 0;} 1. 포인터 연산에서 증가 감소는 포인터 타입에 따라 변한다... 신기하네... #include int main(void){int arr[5] = { 1,2,3,4,5 }; int* pArr = arr;printf("%d\n", *pArr);printf("%d\n", *(++pArr));printf("%d\n", *(++pArr)); printf("%d\n", *(pArr + 1));printf("%d\..
2017. 5. 14.
[c] Pointer & Array
#include int main(void){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("Array name: %d\n", a);return 0;} * a 라는 어레이를 선언하고 초기화 할때 머리속에서 메모리 구간 만들기 총 4열을 만든다. 1열은 이름, 2열은 메모리 주소, 3열은 메모리 블럭 갯수, 4열은 값을 그린다.* 배열의 이름은 첫 번째 요소의 주소 값을 나타낸다.* a 라는 단어를 나타내려면 어떻게 해야하지 방법이 없나? #include int main(void){int a[5] = { 0,1,2,3,4 };int *ptr; ptr = a;printf("%d %d %..
2017. 5. 14.