๋ด๊ฐ ์๊ฐํ ์ ๋ต
input ์ ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์์ฌ์๋๋ฐ, ์ฃผ์๊ฐ์ผ๋ก ๋งค๊ฐ๋ณ์๋ฅผ ๋๊ฒจ์ฃผ์ง ์์ผ๋ฉด ์๋ก์ด ์ง์ญ๋ณ์๊ฐ ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์์ธ๋ค.
๋ฐ๋ผ์, input ๋ณ์์ ์ค์ ์ฃผ์๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ๋ฃ์ด์ค์ผ ์คํ์ ์์ธ input ์ ์์ ํ ์ ์๋ค.
๋ชจ๋ฒ ๋ต์ !
๊ณต๊ฐ์ ๋น๋ ค์ค ์ ์๋ค.
๊ณต๊ฐ์ ์ฃผ์๋ฅผ ํตํด์๋ง ๊ณต์
๋ ์ ์๋ค.
int main() {
int input;
printf("์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์. : ");
scanf("%d", &input);
printf("์
๋ ฅํ์ ์๋ %d ์
๋๋ค.\n", input);
return 0;
}
๋ณ์๊ฐ ์๋๋ค
.๊ทธ๋ฅ โ๊ฐโ
์ด๋ค !!!&
// ์ฃผ์ ์ฐ์ฐ์(Ampersand, ์ฐํผ์๋)*
// ์ฐธ์กฐ ์ฐ์ฐ์๋ผ๊ณ ํจ.// ๋ฌธ์ : ๋ฐฐ์ด์ ํผ์ํ๋ change ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
#include <stdio.h>
// ์ฌ๊ธฐ์ change ํจ์๋ฅผ ๊ตฌํํด์ฃผ์ธ์.
// ์์ง ๋ฏธ์์ฑ๋ ์ํ์
๋๋ค. ๋ง์ ๊ตฌํํด์ฃผ์ธ์.
void change(int arr[]) {
*(arr + 0) = 200;
*(&arr[0] + 2) = 400; // *(arr + 2) = 400; ๋ ๋๊ฐ๋ค.
}
int main(void) {
int x[2];
x[0] = 100;
x[1] = 200;
//int x[2] = {100, 200}; // ์ 3 ์ค ์ฝ๋์ ๊ฐ์ ์๋ฏธ์ด๋ค.
printf("change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : %d, x[1] : %d\n", x[0], x[1]);
// ์ฌ๊ธฐ์ change ํจ์๋ฅผ ์คํํด์ฃผ์ธ์.
change(x);
printf("change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : %d, x[1] : %d\n", x[0], x[1]);
// ์ถ๋ ฅ => change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : 200, x[1] : 400
return 0;
}
// ๋ฌธ์ : ๋ฐฐ์ด์ ํผ์ํ๋ change ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.(๋ฐฐ์ด์ ํฌ์ธํฐ)
#include <stdio.h>
void change(int** arr) {
int* p = *arr;
*p = 100;
**arr = 200;
(*arr)[0] = 200; // ๊ฐ์ ๋ง์.
arr[0][0] = 200; // ๊ฐ์ ๋ง์.
*(arr[0]) = 200;
*(*arr + 1) = 400;
(*arr)[1] = 400;
arr[0][1] = 400;
}
int main(void) {
int x[2] = {100, 200};
// x : ๋ฐฐ์ด๋ณ์
// x์ ๊ฐ์ ์๋์ผ๋ก x[0]์ ์ฃผ์๊ฐ์ ๊ฐ์ง๋ค.
// x == &x[0]
// x์ ํ์
์ int* ์ด๋ค.
printf("change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : %d, x[1] : %d\n", x[0], x[1]);
int* p = x;
change(&p);
printf("change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : %d, x[1] : %d\n", x[0], x[1]);
// ์ถ๋ ฅ => change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : 200, x[1] : 400
return 0;
}
// ํ ๋ฒ ๋ ํ์ด๋ด.
// ๋ฌธ์ : ๋ฐฐ์ด์ ํผ์ํ๋ change ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.(๋ฐฐ์ด์ ํฌ์ธํฐ)
#include <stdio.h>
void change(int** pp) {
**pp = 200;
*(*pp + 1) = 400;
pp[0][0] = 200;
pp[0][1] = 400;
(*pp)[0] = 200;
(*pp)[1] = 400;
// pp[1] ๊ณผ pp[0] ์ 8byte ์ฐจ์ด๊ฐ ๋๋ค!!
}
int main(void) {
int x[2] = {100, 200};
// x : ๋ฐฐ์ด๋ณ์
// x์ ๊ฐ์ ์๋์ผ๋ก x[0]์ ์ฃผ์๊ฐ์ ๊ฐ์ง๋ค.
// x == &x[0]
// x์ ํ์
์ int* ์ด๋ค.
printf("change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : %d, x[1] : %d\n", x[0], x[1]);
int* p = x;
change(&p);
printf("change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : %d, x[1] : %d\n", x[0], x[1]);
// ์ถ๋ ฅ => change ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ , x[0] : 200, x[1] : 400
return 0;
}
scanf("%d %f %d", &a, &b, &c);
โ ํจ์ฌ ๋ ์ธ๋ฐํ๊ฒ ์กฐ์ ๊ฐ๋ฅ. ์ง๊ด์ .map(int, input().split(โ โ))
์ ํตํด ๋ฐ๋๋ค.// class ํ์คTv ๋ abstract ํด๋์ค.
// class LGTv extends ํ์คTv ์.
LGTv = aLGTv2 = (LGTv)aํ์คTv; // ๊ฐ์ ํ๋ณํ. aํ์คTv๊ฐ LGTv ๋ณด๋ค ๋ ํฐ ๊ฐ๋
. ์? ๋ถ๋ชจ ํด๋์ค๋๊น.
aLGTv2.๊ฒ์๋ชจ๋์ ํ();
// ๊ฐ์ ํ๋ณํ
double d = 5.5;
int a = (int)d; // a = 5 ๊ฐ ์ ์ฅ๋๋ค.
// a ๋ณด๋ค d ์ ์ฅ๊ณต๊ฐ์ด ๋ ์ปค์, ๊ฐ์ ํ๋ณํ ํด์ผ ํ๋ค.
๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ค๋ฃฐ ๋
, ์ผ๊ด์ฒ๋ฆฌํ ๋
์ข๋ค!!// ํ์คTv ๋ฆฌ๋ชจ์ฝ 3๊ฐ ๋ฃ์ ์ ์๋ ๋ฐฐ์ด๊ฐ์ฒด ์์ฑ. ํ์คTv ๊ฐ ์์ํด๋์ค์.
ํ์คTv[] arr = new ํ์คTv[3];
arr[0] = a์ผ์ฑTv;
arr[1] = aLGTv;
arr[2] = a์ค์ค๋ฏธTv;
for(ํ์คTv aํ์คTv : arr) { // ํฅ์๋ for ๋ฌธ.
aํ์คTv.๋๊ธฐ();
}
class ํ๊ธธ๋ extends ๋ณํธ์ฌ, ์์ฌ, ๊ฒ์ํ๋ ์ด์ด, ๋์๋ฆฌA์ผ์ {
}
class ํ๊ธธ๋ implements ๋ณํธ์ฌ, ์์ฌ, ๊ฐํธ์ฌ, ... {
} // ์ธํฐํ์ด์ค๋ฅผ ์ด๋ ๊ฒ ๋ค์ค์์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋, ์ถฉ๋์ด ๋ฐ์ํ์ง ์์์์ด๋ค.
๋๋ฌผ : ์จ์ฌ๋ค (abstract class)
์ฌ๋ : ์จ์ฌ๋ค, ๋งํ๋ค
์์ญ์ด : ์จ์ฌ๋ค, ์์ญ์ด ๋ฌ๊ธฐ๋ฅผ ํ๋ค
์ฌ๋ extends ๋๋ฌผ , ์์ญ์ด extends ๋๋ฌผ
์์ญ์ด a์์ญ์ด2 = a๋๋ฌผ;
โ ์ด ์ฝ๋๊ฐ ์๋๋ ์ด์ ๋??
a์์ญ์ด2 ๋ณ์์๋ ๋ฒํผ 2๊ฐ ์ง๋ฆฌ ๋ฆฌ๋ชจ์ฝ.
a๋๋ฌผ ๋ณ์์๋ ๋ฒํผ 1๊ฐ ์ง๋ฆฌ ๋ฆฌ๋ชจ์ฝ.
a๋๋ฌผ ๋ฆฌ๋ชจ์ฝ์ a์์ญ์ด2 ๋ก ๋ณต์ฌํ ๋, ๋ฒํผ 1๊ฐ๋ง ์ถ๊ฐํ๋ฉด ๋๋ ๊ฒ์ด๋ค. โ ์๋ฐ๊ฐ ์ซ์ดํจ.
๋ฆฌ๋ชจ์ฝ์์ ๋ฒํผ์ ์ถ๊ฐํ๋ ๊ฒ
์ ๋ ์๋, ์๋ ์๋ ์๋ค.
๋๋ฌผ a๋๋ฌผ = a์ฌ๋; // (O) ๊ฐ๋ฅ. ๋ฒํผ 1๊ฐ ๋นผ๋ฉด ๋จ. ์๋ฐ์์ ๋ญ๋ผ ์ํ๋ค.
๋๋ฌผ a๋๋ฌผ = a์์ญ์ด; // (O) ๊ฐ๋ฅ. ๋ฒํผ ๋นผ๋ฉด ๋จ.
a์์ญ์ด = a๋๋ฌผ; // ๋ฆฌ๋ชจ์ฝ ๋ฒํผ์ ๋๋ ค์ผ ํ๋ค..
a์์ญ์ด.์จ์ฌ๋ค(); // ์ฌ๋์ด ~
a์์ญ์ด.๋ฌ๊ธฐ(); // ์ฌ๋์ด ~ ?? . ์๋ฐ์์๋ ์ด๋ฅผ ๊ต์ฅํ ํฐ ์ค๋ฅ๋ก ๋ณธ๋ค.
๋ฆฌ๋ชจ์ฝ์ **๋ฒํผ์ ์ถ๊ฐ**
ํ๋ ๊ฒ
๋ฆฌ๋ชจ์ฝ์ **๋ฒํผ์ ๋นผ๋**
๊ฒ
๋ฌด์กฐ๊ฑด ์์
ํ๋ค. โ ์๋ฐ์์๋ ์์ ํ ๊ฒ์ ๋ํด์๋ ์๋ํ๋ณํCompile โ ์๋ฌ ๋ฐ์ ์ error
Runtime โ ์๋ฌ ๋ฐ์ ์ exception
int intValue = 10;
long longValue = intValue; // ์๋ํ๋ณํ ๋๋ ์ด์
intValue = (int)longValue; // ์๋ํ๋ณํ ํด์ผํ๋ ์ด์