#define _CRT_SECURE_NO_WARNINGS
// call by value
// 2020-11-10 | 09:18

#include <stdio.h>
void func01(int *p1, int p2);

void main()
{
	int num1 = 1, num2 = 20;
	int *p1 = &num1, *p2 = &num2;
	printf("%d\\t%d\\n", num1, num2);
	func01(p1, p2);
	printf("%d\\t%d\\n", num1, num2);
}

void func01(int *p1, int *p2)
{
	*p1 = 200;
	*p2 = 100;
	}
#define _CRT_SECURE_NO_WARNINGS
// call by value
// 2020-11-10 | 09:18

#include <stdio.h>
void func01(int *fp1, int fp2);

void main()
{
	int num1 = 1, num2 = 20;
	int *p1 = &num1, *p2 = &num2;
	printf("%p    %p\\n", &p1, &p2);
//	printf("%d\\t%d\\n", num1, num2);
	func01(p1, p2);
//	printf("%d\\t%d\\n", num1, num2);
}

void func01(int *fp1, int *fp2)
{
	printf("%p    %p\\n", &fp1, &fp2);
	*fp1 = 200;
	*fp2 = 100;
}
#include <stdio.h>
void func01(int* arr);
void func02(int arr[5]);
void func03(int arr[]);

void main()
{
	int num[5] = { 10, 20, 30, 40, 50 };
	int i;
	printf("main => ");
	for (i = 0; i < 5; i++)
		printf("%5d", num[i]);
	printf("\\n");
	printf("main => %p\\n", num);
	func01(num);
	for (i = 0; i < 5; i++)
		printf("%5d", num[i]);
	printf("\\n");
	func02(num);
//	func03(num);
}

void func01(int* arr) 
{
	int i;
	printf("\\n func01 => %p,    %p\\n", &arr, arr);
	printf("func01 =>");
	for (i = 0; i < 5; i++) {
		//		printf("%5d", *arr++); 
		*arr = *arr + 10;
		arr++;
	}
	printf("\\n");
}

void func02(int arr[5]) {
	int i;
	printf("\\n func02 => %p\\n", arr);
	printf("func02 =>");
	for (i = 0; i < 5; i++) {
//		printf("%5d", arr[i]);
		arr[i] = arr[i] + 20;
	}
	printf("\\n");
}

void func03(int arr[]) {
	int i;
	printf("\\n func03 => %p\\n", arr);
	printf("func03 =>");
	for (i = 0; i < 5; i++)
		printf("%5d", arr[i]);
	printf("\\n");
}