ν°μ€ν 리 λ·°
πͺ» λ§€κ°λ³μ μ¬μ΄μ μλ£ μ λ¬
πΌ λ§€κ°λ³μ μ¬μ΄μ μλ£μ λ¬ λ°©λ²
β κ°μ μν μλ£μ λ¬ (call by value)
• κΈ°λ³Έμ μΈ μλ£μ λ¬ λ°©λ²
• μ€ λ§€κ°λ³μμ νμ λ§€κ°λ³μ μ¬μ΄μ κ°μ μ λ¬
• νΈμΆν ν¨μμ μ€νμ΄ λλ λ€μ μ λ¬λ°μ κ°μ λλλ € λ°μ§λ λͺ»νλ€.
fcn1(10, 20); // ν¨μ νΈμΆ (μ€ λ§€κ°λ³μ)
// μλ£ μ λ¬ (κ° μ λ¬)
int fcn1(int x, int y) // ν¨μ μ μ (νμ λ§€κ°λ³μ)
β κ°μ μν μλ£μ λ¬ μ
#include <stdio.h>
void swap(int x, int y);
void main(){
int a = 3, b = 5;
printf("νΈμΆ μ a = %d, b = %d\n", a, b);
swap(a, b);
printf("νΈμΆ ν a = %d, b = %d\n", a, b);
}
void swap(int x, int y){
int temp;
temp = x;
x = y;
y = temp;
printf("ν¨μ λ΄ x = %d, y = %d\n", x, y);
}
/* < κ²°κ³Ό >
νΈμΆ μ a = 3, b = 5
ν¨μ λ΄ x = 5, y = 3
νΈμΆ ν a = 3, b = 5 β¨ νΌνΈμΆ ν¨μ λ΄μμ νμ λ§€κ°λ³μ κ°μ΄ λ°λμμΌλ, μ€ λ§€κ°λ³μ κ°μ λ³ν¨ μμ
/*
β κ°μ μν μλ£μ λ¬ κ³Όμ
β μ°Έμ‘°μ μν μλ£μ λ¬ (call by reference)
• νΈμΆν¨μμ νΌ νΈμΆν¨μμ λ§€κ°λ³μ κ°μ μλ‘ κ΅νν μ μλ μλ£ μ λ¬ λ°©λ²
• κ°μ μ λ¬νλ κ²μ΄ μλλΌ μ€ λ§€κ°λ³μμ κ°μ΄ λ€μ΄μλ μ£Όμ κ°μ΄ μ λ¬λλ€.
fcn1(&a, &b); // ν¨μ νΈμΆ (μ€ λ§€κ°λ³μ)
/*
μλ£ μ λ¬ (μ£Όμκ° μ λ¬)
& : μ£Όμ μ°μ°μ, * : λ΄μ© μ°μ°μ
ex) *x : μ£Όμ(x)μ λ΄μ©(*)
*/
int fcn1(int *x, int *y) // ν¨μ μ μ (νμ λ§€κ°λ³μ)
// *x : aμ μ£Όμ, *y : bμ μ£Όμ μ λ¬
β μ°Έμ‘°μ μν μλ£μ λ¬ μ
#include <stdio.h>
void swap(int x, int y);
void main(){
int a = 3, b = 5;
printf("νΈμΆ μ a = %d, b = %d\n", a, b);
// μ£Όμκ° μ λ¬ μν΄ μ€ λ§€κ°λ³μ μμ μ£Όμ μ°μ°μ& λΆμ
swap(&a, &b);
printf("νΈμΆ ν a = %d, b = %d\n", a, b);
}
// μ£Όμκ° μ λ¬ λ°κΈ° μν΄ ν¬μΈν° λ³μ int *x, int *y μ μΈ
void swap(int *x, int *y){
int temp;
temp = *x;
*x = *y; // λ λ³μ a, bμ μ£Όμμ λ΄μ© μλ‘ λ°κΏ
*y = temp;
printf("ν¨μ λ΄ x = %d, y = %d\n", x, y);
}
/* < κ²°κ³Ό >
νΈμΆ μ a = 3, b = 5
ν¨μ λ΄ x = 5, y = 3
νΈμΆ ν a = 5, b = 3
β¨ μ°Έμ‘°μ μν μλ£ μ λ¬ λ°©λ²μ νΌνΈμΆ ν¨μ λ΄ κ°μ λ³νκ° μΌμ΄λλ©΄ μ€ λ§€κ°λ³μμ κ°λ λ³νλ¨
/*
β μ°Έμ‘°μ μν μλ£μ λ¬ κ³Όμ
πͺ» κΈ°μ΅ν΄λμ€ (storage class)
β λ³μλ₯Ό κΈ°μ΅ κ³΅κ°μ νΉμ μμμ ν λΉνλ λ°©λ²
β μ¦, κ° λ³μμ μ ν¨ λ²μμ μ‘΄μ κΈ°κ°μ μ€μ
• λ³μμ μ¬μ© μμΉμ λ°λΌ
- μ§μλ³μ
- μ μλ³μ
• λ³μμ μ‘΄μ κΈ°κ°μ λ°λΌ
- μλλ³μ
- μ μ λ³μ
- μΈλΆλ³μ
- λ μ§μ€ν°λ³μ
πΌ μ§μλ³μμ μ μλ³μ
β μ§μλ³μ (local variable)
• νΉμ λ²μ λ΄μμ ν΅μ©λλ λ³μ
• μ μΈλ λΈλ‘μ΄λ ν¨μ λ΄μμλ§ μ¬μ© κ°λ₯
• ν¨μμμ μ¬μ©λλ λ§€κ° λ³μλ ν΄λΉ
β μ μλ³μ (global variable)
• νλ‘κ·Έλ¨ μ 체μ κ±Έμ³ μ¬μ©λ μ μλ λ³μ
(ν¨μ λ°μ΄λ μΈλΆ νμΌμμ μ μΈλ¨)
• μ΄κΈ°ν μ νλ©΄ 0μΌλ‘ μλ μ΄κΈ°ν
β μ§μλ³μμ μ μλ³μμ μ ν¨λ²μ
β μ§μλ³μμ μ¬μ© μ 1
β μ§μλ³μμ μ¬μ© μ 2
β¨ λ§μ§λ§ printf()μμ yλ μ μλ³μμ΄κΈ° λλ¬Έμ y++κ° μ μ©λ κ°μΌλ‘ μΆλ ₯λ¨
β μ μλ³μμ μ¬μ© μ
β μ μλ³μμ μ§μλ³μμ λΉκ΅
• λμΌ λ²μ λ΄μμλ μ§μλ³μκ° μ°μ
• μ μλ³μ μ μΈμ νλ‘κ·Έλ¨ μ λμ μμΉ
• κ°κΈμ μ§μλ³μλ₯Ό μ¬μ©νλ κ²μ΄ ν¨μ¨μ
β« ν¨μμ λ
λ¦½μ± ν₯μ / λλ²κΉ
ν¨μ¨ ν₯μ / κΈ°μ΅ κ³΅κ° μ μ½
πΌ λ³μμ κΈ°μ΅ν΄λμ€ μ’ λ₯
β¨ μλ λ³μ autoλ₯Ό μ μΈν λλ¨Έμ§λ μλ΅ λΆκ°
β μλλ³μ
• ν¨μ μ€νμ μμ±, μ€ν λλλ©΄ κΈ°μ΅κ³΅κ° μ κ±°
• μμ½μ΄ auto μ¬μ© (μλ΅ κ°λ₯)
• ν΅μ© λ²μλ λ³μκ° μ μΈλ λΈλ, ν¨μ λ΄λ‘ νμ
• μ§μλ³μμ ν΄λΉ
• μ΄κΈ°ν νμ
β μλ λ³μμ μ¬μ© μ
β μ μ λ³μ
• κΈ°μ΅μμ νλ‘κ·Έλ¨ λλ λκΉμ§ μ μ§
• μμ½μ΄ staticμ μ¬μ©
• μ μ λ³μμ ν΄λΉ
• λ³μμ κ°μ νλ‘κ·Έλ¨ μ€ν μ€ κ³μ μ μ§
• μ΄κΈ°νκ° μμΌλ©΄ 0μΌλ‘ μ΄κΈ°ν
β μ μ λ³μμ μ¬μ© μ 1
β μ μ λ³μμ μ¬μ© μ 2
β¨ μ μ λ³μ sλ main() μμ whileλ¬Έμ΄ λ λλ§λ€ κ°μ΄ λ°λμ§λ§,
μλ λ³μμΈ aλ whileλ¬Έμ΄ λ λλ§λ€ κ°μ΄ μ΄κΈ°ν λ¨
β μλ λ³μλ νΈμΆλ λλ§λ€ κ°μ΄ μ΄κΈ°ν λμ§λ§,
ν¨μ λ΄μμ μ¬μ©λ μ μ λ³μλ ν¨μλ₯Ό λΉ μ Έλκ°λ κ·Έ κ°μ μ μ§ (ν λ²λ§ μ΄κΈ°ν λ¨)
β μΈλΆλ³μ
• ν¨μμ μΈλΆμμ μ μΈ
• μμ½μ΄ extern μ¬μ©
• μ μ λ³μμ ν΄λΉ
• μ΄κΈ°νκ° μμΌλ©΄ 0μΌλ‘ μ΄κΈ°ν λ¨
• λ€λ₯Έ νμΌμμ μΈλΆ λ³μλ‘ μ μΈλ λ³μ κ°μ μ°Έμ‘°ν μ μλ€
β μΈλΆ λ³μμ μ¬μ© μ 1
β μΈλΆ λ³μμ μ¬μ© μ 2
β¨ λλ€λ₯Έ λ 립λ νμΌμμ μΈλΆλ³μλ₯Ό μ μΈν¨μΌλ‘μ¨ κ°μ κ°μ Έλ€ μ¬μ©ν μ μμ
β λ μ§μ€ν°λ³μ
• CPU λ΄ λ μ§μ€ν°μ μλ£ μ μ₯νκ³ μ ν λ
• μμ½μ΄ register μ¬μ©
• μλ λ³μμ λμΌν μμ±
• νλ‘κ·Έλ¨ μ€ν μλ μ¦κ°λ₯Ό λͺ©μ μΌλ‘ μ¬μ©
(μ£Όλ‘ λ°λ³΅λ¬Έμμ μΉ΄μ΄ν° λ³μλ‘ μ¬μ©)
β μΈλΆ λ³μμ μ¬μ© μ 1
'π«π' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Cνλ‘κ·Έλλ°] 09. λ°°μ΄κ³Ό ν¬μΈν° β‘ (1) | 2024.05.01 |
---|---|
[Cνλ‘κ·Έλλ°] 08. λ°°μ΄κ³Ό ν¬μΈν° β (1) | 2024.05.01 |
[νμ΄μ¬νλ‘κ·Έλλ°κΈ°μ΄] 09. ν¨μ (0) | 2024.04.29 |
[νμ΄μ¬νλ‘κ·Έλλ°κΈ°μ΄] 08. μ€κ° κ°λ μ 리 (0) | 2024.04.29 |
R Consoleμ μ΄μ©ν μλ ν΄λΌμ°λ (word cloud) / KoNLP μ€λ₯ ν΄κ²° (0) | 2024.04.23 |