[C언어] NULL, 0 관련
2021. 7. 22. 09:33ㆍ2018년 이전 관심사/프로그램 언어
반응형
NULL 혹은 0
먼저 NULL 부터 알아보겠습니다. NULL은 헤더파일에 정의된 매크로로 null pointer constant입니다. 컴파일러에 의해 (void*)0 으로 정의되어집니다.
일반적으로 C언어에서 stdio.h 파일, C++에서 iostream 헤더파일을 include 시에 사용할 수 있습니다. NULL은 0 주소를 의미하기 때문에 포인터 변수를 초기화 시에 사용합니다.
예를들어 ..
char *ptr = NULL 과 char *ptr = 0 은 같은 의미라 볼 수 있습니다.
그러나 int a = NULL 과 int a = 0 의 의미는 다릅니다.
왜냐하면 전자의 경우, NULL의 의미는 a 변수에 주소값 0 을 넣는것이고 후자는 정수 0을 a변수에 넣는다는 뜻입니다.
결론적으로 NULL은 0이랑 의미가 거의 같습니다. 포인터를 초기화 시에 0은 0 주소라는 것을 알고 있다는 가정하에 쓰기 때문에 NULL과 0의 의미를 동일하게 보는것입니다. 정수형 변수를 초기화시에 NULL을 쓰는 일은 없으니까요.
NULL - 0x00000000 or 0x00000000'00000000 (32 vs 64 bit) 로 표현됩니다.
참고 자료
https://noirstar.tistory.com/16
반응형
'2018년 이전 관심사 > 프로그램 언어' 카테고리의 다른 글
[Python] 상위 폴더 import 방법 (0) | 2022.02.12 |
---|---|
[FreeRTOS] Task에서 사용하고 있는 최대 Stack Size 확인 법 (0) | 2021.07.23 |
[C언어]printf string format %*.*s (0) | 2021.07.20 |
[C#, Winform]Password 입력 항목 구현 (0) | 2021.07.15 |
[C#, Winform]checkedBoxList 항목 중 하나만 선택 하는 방법 (0) | 2021.07.14 |