IT공부/C언어
12/31 난생처음 C 프로그래밍
공부하는 라라
2023. 12. 31. 11:34
chapter 10 포인터 기초 연습문제
1. 시작주소, 크기, 해석
2. &참조연산자, *간접연산자
3. 8바이트,TYPE
4. 4,8
5. TYPE만큼 더
6. p+N
7. *p + 1
8. 2
9. 1,4,8
10.
void* Swap(int* p1, int* p2)
{
int swap;
swap = *p1;
*p1 = *p2;
*p2 = swap;
}
int main()
{
int p1 = 1;
int p2 = 2;
Swap(&p1, &p2);
printf("%d, %d", p1,p2 );
}
11.
void* MaxAddress(void* p1, void* p2)
{
if (p1 > p2)
return p1;
else
return p2;
}
int main()
{
int* a = NULL;
int* b = 10;
printf("메모리주소 a: %p, b: %p\r\n", &a, &b);
printf("메모리 주소가 더 큰 주소: %p" ,MaxAddress(&a, &b));
}
LAB 11-1
내답:
int mystrlen(const char* str)
{
int sum = 0;
//문자열을 받아서 길이를 반환하는 함수
for (int i = 0; ; i++)
{
if (str[i] == '\0')
{
break;
}
sum++;
}
printf("문자열의 길이: %d", sum);
}
해답: 오 훨씬 간단..하고..좋..다...
int mystrlen(const char* str)
{
for (int i = 0; ; i++)
{
if (str[i] == '\0')
return i;
}
}
LAB 11-2
내답:
void Sort(int arr[], int count)// int* arr
{
int temp;
//배열 포인터로 뭘 할 수 있는데
for (int i = 0; i < count; i++)
{
for (int j = i+1; j < count; j++)
{
if (arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main()
{
int arr[6] = { 3,2,6,9,1,8 };
Sort(arr, 6);
for (int i = 0; i < 6; i++)
{
printf("%d ", arr[i]);
}
}
해답: 똑같음.. 헤헤