예제 #7 – 참조에 의한 호출
#include <stdio.h>
void modify(int* ptr)
{
printf("[modify]ptr의 값:%u\n", &ptr);
printf("[modify]ptr이 가리키는 값:%d\n", *ptr);
*ptr = 99;
printf("[modify]개조 후 ptr이 가리키는 값:%d\n", *ptr);
}
int main(void)
{
int number = 1;
printf("number의 주소:%u\n", &number);
printf("호출 후 number = %d\n", number);
modify(&number);
printf("호출 전 number = %d\n", number);
return 0;
}
Lab 1: swap() 함수
#include <stdio.h>
void swap(int* px,int* py)
{
int tmp;
tmp = *px;
*px = *py;
*py = tmp;
}
int main(void)
{
int a = 100, b = 200;
printf("swap() 호출 전 a=%d, b=%d\n", a, b);
swap(&a, &b);
printf("swap() 호출 후 a=%d, b=%d\n", a, b);
return 0;
}
예제 #8 – 두 개 이상의 결과를 반환하는 함수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int get_line_parameter(int x1,int y1, int x2, int y2, float *p_incline, float *p_y_intercept)
{
if (x1 == x2) {
return -1;
}
else {
*p_incline = (float)(y2 - y1) / (float)(x2 - x1);
*p_y_intercept = y1 - (*p_incline) * x1;
return 0;
}
}
int main(void)
{
float incline, y_intercept;
int x1, y1, x2, y2;
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
if (get_line_parameter(x1, y1, x2, y2, &incline, &y_intercept) == -1) {
printf("에러\n");
}
else {
printf("기울기는 %f, y절편은 %f\n", incline, y_intercept);
}
return 0;
}
Lab 2: 배열을 인수로 받는 함수 작성
#include <stdio.h>
#define SIZE 5
double get_array_avg(int values[], int size);
void print_array(int values[], int size);
int main(void) {
int i;
int a[SIZE] = { 10,20,30,40,50 };
double result;
print_array(a, SIZE);
result = get_array_avg(a, SIZE);
printf("배열 원소들의 평균 = %f\n", result);
return 0;
}
double get_array_avg(int values[], int size) {
double sum = 0;
for (int i = 0; i < size; i++) {
sum += values[i];
}
return sum / size;
}
void print_array(int values[], int size) {
printf("[ ");
for (int i = 0; i < size; i++) {
printf("%d ", values[i]);
}
printf("]\n");
}
Lab 3: 배열의 값 역순 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int array[5];
int* p = array;
printf("5개의 정수를 입력하시오 : ");
for (int i = 0; i < 5; i++) {
scanf("%d", (array + i));
}
printf("역순 : ");
for (int i = 0; i < 5; i++) {
printf("%d ", p[4 - i]);
}
printf("\n");
}