본문 바로가기

카테고리 없음

Visual Studio, C8

8-1. array, base address

#include <stdio.h>
#define ARRAY

#if defined ARRAY
int main(void)
{
	int ary[5];

	ary[0] = 10;
	ary[1] = 20;
	ary[2] = ary[0] + ary[1];

	int data = 555;

	for (int i = 0; i < 5; i++) {
		printf("ary[%d] = [%d] \n", i, ary[i]);
	}

	return 0;
}
#endif

#elif defined ARRAY
int main()
{
	int ary[5]; // index, offset

	ary[0] = 10;
	ary[1] = 20;
	ary[2] = ary[0] + ary[1];

	//scanf_s("%d", &ary[3]); // &, address
	int data = 555;

	for (int i = 0; i < 5; i++) {
		printf("ary[%d] = [%d]\n", i, ary[i]);
	}
#if 1
	printf("\n");
	printf("ary = [0x%x]\n", ary); // ary address
	printf("ary 0 address = [0x%x]\n", &ary[0]); // &ary[0], base address a5c
	printf("ary 3 address = [0x%x]\n", &ary[3]); // address a68
	printf("data = [%d]\n", data);
	printf("data address = [0x%x]\n", &data);
#endif

	return 0;
}
#endif

 

8-2. sizeof 

#if defined SIZEOF
int main(void)
{
	int arry[5];

	int cnt;
	cnt = sizeof(arry) / sizeof(arry[0]); //total size
	int i;
	printf("Size of arry = [%d]\n", cnt);

	float avg = 0;
	float sum = 0;

	for (i = 0; i < cnt; i++) {
		printf("please, input data [%d]\n",i);
		scanf_s("%d", &arry[i]);

		sum += arry[i];
		printf("sum = [%.1f]\n", sum);
	}
	return 0;
}
#endif

input data

 

average

#if defined SIZEOF
int main(void)
{
	int arry[5];

	int cnt;
	cnt = sizeof(arry) / sizeof(arry[0]); //total size
	int i;
	printf("Size of arry = [%d]\n", cnt);

	float avg = 0;
	float sum = 0;

	for (i = 0; i < cnt; i++) {
		printf("please, input data [%d]\n",i);
		scanf_s("%d", &arry[i]);

		sum += arry[i];
		printf("sum = [%.1f]\n", sum);
	}
	avg = sum / cnt;
	printf("Average = [%.1f]\n", avg);

	return 0;
}
#endif

 

8-3. scanf

#include <stdio.h>

int main(void)
{
	char s[64] = "applejam";

	printf("1st : %s\n", s);
	printf("please, input 2nd : ");
	scanf("%s", s);
	printf("2nd : %s\n", s);
	printf("2nd : %s\n", &s[0]);

	return 0;
}

 

s의 주소값 확인

#include <stdio.h>

int main(void)
{
	char s[64] = "applejam";

	printf("1st : %s\n", s);
	printf("please, input 2nd : ");
	scanf("%s", s);
	printf("2nd : %s\n", s);
	printf("2nd : %s\n", &s[0]);

	for (int i = 0; i < 64; i++) { // sizeof(s)
		printf("s[%d] address = [0x%x]\n", i, &s[i]);
	}

	return 0;
}

 

8-4. strcpy 함수

#include <stdio.h>
#include <string.h>
#define STR_COPY

#if defined STR_COPY
#define STR_LEN (64)
int main(void)
{
	char s1[STR_LEN] = "cat";
	char s2[STR_LEN];

	printf("string s1 = [%s], string s2 = [%s]\n", s1, s2);
	printf("please, type string \n");
	scanf("%s", s1);

	printf("string s1 = [%s], string s2 = [%s]\n", s1, s2);
	strcpy(s2, s1);
	printf("string s1 = [%s], string s2 = [%s]\n", s1, s2);

	return 0;
}
#endif

 

8-3. #2

#include <stdio.h>
#include <string.h>
#define STR_COPY

#if defined STR_COPY
#define STR_LEN (64)
int main(void)
{
	char s1[STR_LEN] = "cat";
	char s2[STR_LEN];

	int len = 0;
	int null = 0;

	printf("string s1 = [%s], string2 = [%s]\n", s1, s2);
	printf("please, input string1 : ");
	scanf_s("%s", s1, sizeof(s1));

	for (int i = 0; s1[i]; i++) {
		len += 1;
	}
	printf("string s1 = [%s], string2 = [%s]\n", s1, s2);

	for (int i = 0; s1[i] != '\0'; i++) {
		s2[i] = s1[i];
		null = i;
	}
	s2[null + 1] = '\0';
	printf("string s1 = [%s], string2 = [%s]\n", s1, s2);

	return 0;
}
#endif