본문 바로가기
728x90
반응형
SMALL

개념/혼자 공부하는 C언어148

chapter 15) void 포인터 사용 #include int main(void){ int a = 10; double b = 3.5; void *vp; vp = &a; printf("a : %d\n", *(int *)vp); vp = &b; printf("b ; %.1lf\n", *(double *)vp); return 0; } 이 코드는 `void` 포인터의 사용법을 설명하는 예제입니다. `void` 포인터는 특정 타입이 정해지지 않은 포인터로, 어떠한 타입의 주소도 저장할 수 있습니다. 이 코드에서는 `void` 포인터를 사용하여 정수형 변수 `a`와 실수형 변수 `b`의 주소를 순차적으로 저장하고, 이를 다시 역참조하여 값을 출력합니다. ### 코드 설명 - `int a = 10;`와 `double b = 3.5;`를 통해 정수형 변수 .. 2024. 9. 16.
chapter 15) 포인터와 이중 포인터의 관계 #include int main(void){ int a = 10; int *pi, **ppi; pi = &a, ppi = π printf("----------------------------------------------\n"); printf("변수 변숫값 &연산 *연산 **연산\n"); printf("----------------------------------------------\n"); printf(" a%10d%10%10u\n", a, &a); printf(" pi%10u%10u%10d\n",pi, &pi, *pi); } ### 코드 설명 이 프로그램은 변수, 포인터, 이중 포인터의 개념을 설명하기 위해 작성되었습니다. 변수 `a`, 포인터 `pi`, 그리고 이중 포인터 `ppi`를 사용하여 .. 2024. 9. 15.
chapter 15) 포인터 배열의 값을 출력하는 함수 #include void print_str(char **pps, int cnt); int main(void){ char *ptr_ary[] = {"eagle", "tiger", "lion", "squirrel"}; int count; count = sizeof(ptr_ary)/ sizeof(ptr_ary[0]); print_str(ptr_ary, count); return 0; } void print_str(char **pps, int cnt){ int i; for (i = 0; i< cnt; i++){ printf("%s\n", pps[i]); } } ### `main` 함수 - `char *ptr_ary[] = {"eagle", "tiger", "lion", "squirrel"};`는 문자열의 배열을.. 2024. 9. 14.
chapter 15) 주소로 쓰이는 배열명과 배열의 주소 비교 #include int main(void){ int ary[5]; printf("ary value : %u\t", ary); printf("ary address : %u\n", &ary); printf("ary + 1 : %u\t", ary + 1); printf("&ary + 1 : %u\n", &ary + 1); return 0; } ### 배열과 포인터 연산 - `int ary[5];`는 5개의 정수를 저장할 수 있는 배열을 선언합니다. - `printf("ary value : %u\t", ary);`는 배열의 이름 `ary`를 사용하여 배열의 첫 번째 요소의 주소를 출력합니다. 배열 이름은 첫 번째 요소의 주소를 가리키므로, 이는 배열의 시작 주소입니다. - `printf("ary address .. 2024. 9. 13.
728x90
반응형
LIST