0512 - ccyomni/ex250310_second GitHub Wiki

  • ๋ฉ”๋ชจ๋ฆฌ ๊ทธ๋ฆผ
#include <stdio.h>
int main()
{
	int n = 10;
	int n2 = n;
	int* p = &n;
	int* p2 = p;
}

image

#include <stdio.h>
int main()
{
	char arr[3] = { 10,20,30 }
	double darr[4] = { 10.1,20.2,30.3,40.4 }
	char* pc = &arr[0];
	double* pd = &darr[0];
}

image

์ฃผ์†Œ์˜ ์—ฐ์‚ฐ

#include <stdio.h>
int main()
{
	int n = 10; //n์€ intํ˜•(4๋ฐ”์ดํŠธ)
	int* p = &n;

	printf("%p %p\n", &n, p);
	printf("%p %p\n", &n + 1, p + 1); //n์ด 1020์ด๋ฉด n+1์€ 1024
	printf("%p %p\n", &n+2, p+2);
}
#include <stdio.h>
int main()
{
	int n = 10; 
	int* p = &n;

	printf("%d %d\n", *&n, *p);
	printf("%d %d\n", *(&n + 1), *(p + 1);
}

์ถœ๋ ฅ ์•ˆ๋จ

์ฃผ์†Œ์˜ ์—ฐ์‚ฐ

#include <stdio.h>
int main()
{
	int arr[2] = { 100,200 };
	int* p = &arr[0];

	printf("%p %d", p, *p);
	printf("%p %d", p+1, *(p+1));
}

image

๊ฐ™์€ ์ฝ”๋“œ

#include <stdio.h>
int main()
{
	int arr[2] = { 100,200 };
	int* p = &arr[0];

	printf("%p %d", p, *(p+0);
	printf("%p %d", p+1, *(p+1));
}

๊ฐ™์€ ์ฝ”๋“œ

#include <stdio.h>
int main()
{
	int arr[2] = { 100,200 };
	int* p = &arr[0];

	printf("%p %d", p, p[0]);
	printf("%p %d", p + 1, p[1]);
}

์ฃผ์†Œ ์•ž์—๋Š” *๊ฐ€ ๋ถ™์„ ์ˆ˜ ์žˆ์Œ ์ฃผ์†Œ๊ฐ€ ๋ถ™์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์ด๋ฆ„์ด ๋จ *(์ฃผ์†Œ+1)์€ ์ฃผ์†Œ์— 1 ๋”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์ด๋ฆ„์ด ๋จ *(์ฃผ์†Œ+1) = ์ฃผ์†Œ[1]

#include <stdio.h>
int main()
{
	int arr[2] = { 100,200 };
	int* p = &arr[0];

	printf("%d %d\n", arr[0], arr[1]);
	printf("%d %d\n", p[0], p[1]);
}

image

#include <stdio.h>
int main()
{
	double da[4] = { 1.1, 2.2, 3.3, 4.4 };
	double* pd = &da[1];

	printf("%g %g\n", da[1], pd[0]);
	printf("%g %g\n", da[2], pd[1]);
	printf("%g %g\n", da[0], pd[-1]);
}

image

๋ฌธ์ž์™€ ๋ฌธ์ž์—ด

#include <stdio.h>
int main()
{
	int n = 65;

	printf("%c %d\n", n, n); //c๋Š” ๋ฌธ์ž๋กœ ์ถœ๋ ฅํ•˜๋ผ๋Š” ๋œป. ๋ฌธ์ž A๊ฐ€ ์ถœ๋ ฅ๋จ
	printf("%c %d\n", 65, 65);
	printf("%c %d\n", 'A', 'A');
}

์ถœ๋ ฅ๊ฐ’์€ ์ „๋ถ€ A 65 ๋ฌธ์ž 'A' ๋ฌธ์ž์—ด "A" ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์ •์ˆ˜๋กœ ์ •์˜๋จ

#include <stdio.h>
int main()
{
	int n = 65;

	printf("%c %d\n", n, n);
	printf("%c %d\n", n+1, n+1);
}

์ถœ๋ ฅ๊ฐ’: A 65, B 66

  • ๋ฌธ์ž EnCoding 65=A, 66=B, 67=C UNICODE : ์ „์„ธ๊ณ„์ ์œผ๋กœ ํ‘œ์ค€์–ด๋กœ ์ž๋ฆฌ ์žกํ˜€ ์žˆ๋Š” ๋ฌธ์ž ์ง‘ํ•ฉ ex) UTF-8 (1๋ฐ”์ดํŠธ๊ฐ€ 65), UTF-16(2๋ฐ”์ดํŠธ๊ฐ€ 65), UTF-32(4๋ฐ”์ดํŠธ๊ฐ€ 65), WBCS image
#include <stdio.h>
int main()
{
	int n1 = 65;
	int n2 = 'A';

	printf("%d %d\n", n1, n2);
	printf("%c %c\n", n1, n2);
}

์ถœ๋ ฅ๊ฐ’: 65 65, A A

๋ฌธ์ž์—ด

  • ๋„ ๋ฌธ์ž (\0) "ABC"๋Š” 4๋ฐ”์ดํŠธ '\0'(๋„ ๋ฌธ์ž)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ "Hello"๋„ 5๋ฐ”์ดํŠธ๊ฐ€ ์•„๋‹Œ 6๋ฐ”์ดํŠธ
#include <stdio.h>
int main()
{
	char* s = "ABC";
	char arr[4] = "ABC";

	printf("%p %p\n", s, &arr[0]);
	printf("%s %s\n", s, &arr[0]);
}
#include <stdio.h>
int main()
{
	char* s = "ABC";

	printf("%p %p\n", s, s);
	printf("%s %s\n", s, s);
}

image

#include <stdio.h>
int main()
{
	char* s = "ABC";

	printf("%p %p\n", s, s+1);
	printf("%s %s\n", s, s+1);
}
#include <stdio.h>
int main()
{
	char* s = "ABC";

	printf("%s %s\n", s, "ABC");
}

๊ธฐ๋ง

#include <stdio.h>
int main()
{
	char* s = "ABC";

	printf("%c %c\n", s[0], "ABC"[0]);
	printf("%s %s\n", s, "ABC");
	printf("%s %s\n", s+1, "ABC"+1);
	printf("%p %p\n", s, "ABC");
}

์ถœ๋ ฅ๊ฐ’: A A ABC ABC BC BC 00007FF7A3B49BB0 00007FF7A3B49BB0

#include <stdio.h>
int main()
{
	printf("%s %s\n", "ABC", "Hello");
	printf("%s %s\n", "ABC"+1, "Hello"+1); //BC ello
	printf("%p %p\n", "ABC", "Hello");
	printf("%p %p\n", "ABC"+1, "Hello"+1); //๋ชจ๋“  ๋ฌธ์ž๋Š” charํ˜•, 1 ๋”ํ•˜๋ฉด 1๋ฐ”์ดํŠธ ์ฆ๊ฐ€๋œ ์ฃผ์†Œ ์ถœ๋ ฅ
}
#include <stdio.h>
int main()
{
	char* s1 = "ABC";
	char* s2 = "Hello";

	printf("%s %s\n", s1, s2);
	printf("%s %s\n", "ABC"+1, "Hello"+1);
}

image

image

#include <stdio.h>
int main()
{
	char* s1 = "ABC";
	char* s2 = "Hello";

	printf("%s %s\n", s1, s2);
	printf("%c %d\n", s1[0], s2[0]);
	printf("%c %d\n", s1[1], s2[1]);
	printf("%c %d\n", s1[2], s2[2]);
}

์ถœ๋ ฅ๊ฐ’ ABC Hello A 72 B 101 C 108

#include <stdio.h>
int main()
{
	char* s1 = "ABC";

	printf("%c : %d\n", s1[0], s1[0]); //A๋ฌธ์ž ์ถœ๋ ฅ
	printf("%c : %d\n", s1[1], s1[1]); //B๋ฌธ์ž ์ถœ๋ ฅ
	printf("%c : %d\n", s1[2], s1[2]); //C๋ฌธ์ž ์ถœ๋ ฅ
}

์ถœ๋ ฅ๊ฐ’ A : 65 B : 66 C : 67

๊ฐ™์€ ์ฝ”๋“œ

#include <stdio.h>
int main()
{
	char* s1 = "ABC";

	for(int i = 0 ; i < 3; ++i)
	 printf("%c : %d\n", s1[i], s1[i]);
}
#include <stdio.h>
int main()
{
	char* s1 = "ABCDEF";

	for(int i = 0 ; s1[i] != '\0'; ++i) //๋„ ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด ์ถœ๋ ฅ
	 printf("%c : %d\n", s1[i], s1[i]);
}

์ถœ๋ ฅ๊ฐ’ A : 65 B : 66 C : 67 D : 68 E : 69 F : 70 '\0'๊ฐ€ ๋ช…ํ™•ํ•œ ์ฝ”๋“œ

#include <stdio.h>
void PrintStringToAscii(char* s1)
{
	for (int i = 0; s1[i] != '\0'; ++i)
		printf("%c : %d\n", s1[i], s1[i]);
	printf("\n");
}
int main()
{
	char* s1 = "ABCDEF";

	PrintStringToAscii("ABC");
}

์ถœ๋ ฅ๊ฐ’ A : 65 B : 66 C : 67

#include <stdio.h>
void PrintStringToAscii(char* s1)
{
	for (int i = 0; s1[i] != '\0'; ++i)
		printf("%c : %d\n", s1[i], s1[i]);
	printf("\n");
}
int main()
{
	char* s1 = "ABCDEF";

	PrintStringToAscii("ABC");
	PrintStringToAscii(s1);
	PrintStringToAscii("Hello");
}

์ถœ๋ ฅ๊ฐ’ A : 65 B : 66 C : 67

A : 65 B : 66 C : 67 D : 68 E : 69 F : 70

H : 72 e : 101 l : 108 l : 108 o : 111

โš ๏ธ **GitHub.com Fallback** โš ๏ธ