C Macro NULL - sonkoni/Koni-Wiki GitHub Wiki
stddef.h | string.h | wchar.h | time.h | locale.h | stdio.h | stdlib.h
μ λ‘(0)λ₯Ό κ°λ¦¬ν€λ ν¬μΈν°
#define NULL (void*) 0NULLμ μ¬λ¬ κ³³μ μ μλμ΄ μλ€. μ λ‘ν¬μΈν°. objcμμ nil(Nil)κ³Ό κ°λ€.
char *ptr = NULL κ³Ό char *ptr = 0 λ κ°μ μλ―Έμ΄λ€. NULLμ μλ―Έλ a λ³μμ μ£Όμκ° 0 μ λ£λ κ²μ μλ―Ένλ€.
#include <stdio.h>
int main(int argc, char *argv[]) {
// μμ€ν€ 0λ²(NUL)μ κ°λ¦¬ν€λ ν¬μΈν° μ£Όμ 0μ λ£λλ€λ κ²μ μλ―Έ
char *ptr1 = 0;
char *ptr2 = NULL;
printf("-> %p, %s\n", ptr1, ptr1);
printf("-> %p, %s\n", ptr2, ptr2);
// -> 0x0, (null)
// -> 0x0, (null)
// μ μ μ€ν 리μ§μ μμ€ν€ 0λ²(NUL)μ λ£λ κ²μ μλ―Έ
char a = 0;
char b = '\0'; // ''λ λ¬Έμ 곡κ°μμ μ°Ύλλ° \λ₯Ό λ£μΌλ©΄ μμ€ν€ λ²νΈλ‘ λ€μ΄κ°λ€.
char c[1] = ""; // ""μλ λμ '\0' μ΄ ν¬ν¨λλ€.
printf("-> %d, %c\n", a, a);
printf("-> %d, %c\n", b, b);
printf("-> %d, %s\n", c[0], c);
// ν΄λΉ λ¬Έμκ° μκΈ° λλ¬Έμ %c λ‘ ννλμ§ μλλ€(μ μ΄λ¬Έμμ΄κΈ° λλ¬Έμ ννν μ μλ€)
// -> 0,
// -> 0,
// -> 0,
// μ μ μ€ν 리μ§μ μμ€ν€ 48λ²(μ«μ 0)μ μ μ₯νλ€λ μλ―Έ
char c = '0';
printf("-> %d, %c\n", c, c);
// -> 48, 0
return 0;
}