Computer Science/Algorithm 9

[배열과 포인터] 포인터 증감연산

#include #include int main(void) { /* test 1 */ int arr[5] = {10,20,30,40,50}; int *p = arr; printf("%d ", *p); printf("%d ", *p++); printf("%d ", (*p)++); printf("%d ", *(p++)); //왜 21이 나오지?, p++먼저 해서 p의 주소값을 하나 올리고 그 값을 출력하니까 30 아닌가? printf("%d ", *p); printf("\n\n"); /* test 2 */ int arr1[5] = {10,20,30,40,50}; int *p = arr1; printf("%d ", *p); printf("%d ", ++*p); printf("%d ", ++(*p)); prin..

[배열과 포인터] 일차원 배열과 이차원 배열 및 포인터 표기 방법

일차원 배열과 이차원 배열에서, 배열 및 포인터 표기법을 알아보았다. #include void onedim() { int i; int a[5] = {1,2,3,4,5}; int *ptr; int **c; ptr=a; c=&ptr; printf("&a[0]: %p, a: %p, b: %p, c: %p\n", &a[0], a, ptr, c); for (i = 0; i < 5; i++) { printf("a[0]: %d, *(a+%d): %d, *(ptr+i): %d\n", a[i], i, *(a+i), *(ptr+i)); } } void twodim() { int i, j; int a[2][3] = {1,2,3,40,50,60}; /*int **dptr; dptr = a;*/ // error int (*dp..

[구조체] struct 선언 방법들

- 구조체를 선언할 때 typedef를 사용하면 별칭이 꼭 필요하고, 이때는 구조체를 사용할때 별칭만으로 선언 가능하다. #include struct A { int a; int b; int c; }; typedef struct { int a; int b; }b; typedef struct C { int a; int b; }c; /* 안되는 선언 - typedef로 선언했으면 별칭이 있어야 함*/ typedef struct D{ int a; int b; }(별칭); typedef struct A a; int main (void) { a a1; struct A a2; b b1; c c1; }