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