目錄
- 一.關于 NULL 定義
- 二.NULL 和 0 區別
- 三.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.關于 NULL 定義
NULL 在 stdio.h 中定義如下:
#if !defined(NULL) && defined(__NEEDS_NULL)
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
二.NULL 和 0 區別
在 C 語言中,NULL 和 0 的值都是一樣的,但是為了目的和用途及容易識別的原因,NULL 用于指標和物件,0 用于數值;
#include<stdo.h>
int main()
{
int *p=NULL;
printf("%s",p);
}
/*
輸出:
0x00000000
*/
由上面代碼可以看出:NULL 在實際底層呼叫中就是 0 ;
在不同的系統中,NULL 并非總是和 0 等同,NULL 僅僅代表空值,也就是指向一個不被使用的地址,在大多數系統中,都將 0 作為不被使用的地址,所以就有了類似這樣的定義
#define NULL 0
但并非總是如此,也有些系統不將 0 地址作為 NULL ,而是用其他的地址,所以說,千萬別將 NULL 和 0 等價起來,特別是在一些跨平臺的代碼中,這更是將給你帶來災難,
三.猜你喜歡
- C 語言 陣列下標越界和記憶體溢位區別
- C 語言 使用指標遍歷陣列
- C 語言 指標和陣列區別
- C 語言 指標陣列和陣列指標區別
- C 語言 野指標
- C 語言 函式值傳遞和址傳遞
- C 語言 函式不定長引數
- C 語言 函式指標
- C 語言 指標函式
- C 語言 回呼函式 callback
- C 語言 #pragma once
- C 語言 #include <> 與 #include “” 區別
- C 語言 const 修飾函式引數
- C 語言 const 和 define 區別
- C 語言 #運算子
- C 語言 ##運算子
- C 語言 __VA_ARGS__
- C 語言 ##__VA_ARGS__
- C 語言 函式不定長引數 ##__VA_ARGS__經典案例
- C 語言 va_start 宏
- C 語言 va_end 宏
- C 語言 va_arg 宏
- C 語言 vprintf 函式
- C 語言 va_start / va_end / va_arg 自定義 printf 函式
- C 語言 main 函式
- C 語言 main 函式引數 main(int argc, char *argv[])
- C 語言 exit 函式
- C 語言 abort 函式
- C 語言 assert 函式
- C 語言 NULL 和 0 區別
未經允許不得轉載:猿說編程 ? C 語言 NULL 和 0 區別
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/302355.html
標籤:其他
