日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 空指针 NULL - C语言零基础入门教程

發布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 空指针 NULL - C语言零基础入门教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一.指針簡介
  • 二.空指針 NULL
  • 三.關于 NULL 和 0
  • 四.猜你喜歡

零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門

一.指針簡介

在前面的文章有關于指針的介紹:指針很靈活,它可以指向任意類型的數據。指針的類型說明了它所指向地址空間的內存,以下是有效的指針聲明:

int *p; /* 一個整型的指針 */ double *p; /* 一個 double 型的指針 */ float *p; /* 一個浮點型的指針 */ char *p; /* 一個字符型的指針 */

注意:不要忘記在指針類型和變量名中間還有一個 * 號,沒有這個 * 號,只是定義了一個普通變量,這也是普通變量聲明和指針聲明的區別之一;

二.空指針 NULL

在 C 語言中,如果一個指針不指向任何數據,我們就稱之為 空指針 ,用 NULL 表示。例如:

int *p = NULL;

注意區分大小寫,null 沒有任何特殊含義,只是一個普通的標識符。NULL 是一個宏定義,在 stdio.h 被定義為:

#define NULL ((void *)0)

我們知道,變量一旦定義就要分配內存,指針變量也是如此。例如:

int *p; //它不是空指針

它的值是隨機的,是垃圾值,如果不小心使用了它,運行時一般會引起段錯誤,導致程序退出,甚至會不知不覺地修改數據。

p 經過定義,就一定在內存中分配了 4 個字節的空間,只是它的值是隨機的,不像 int 會被初始化為 0,但是它確實指向了一段正常使用的內存。使用 p 時,操作的就是這段內存的數據,幸運的話能夠正常運行,不過大部分情況下這段內存是無權操作的。

三.關于 NULL 和 0

不要把 NULL 和 0 等同起來,下面的寫法也是不專業的

int *p = 0;

正確的書寫:

int *p = NULL;

注意 NULL 和 NUL 的區別:NULL表示空指針,是一個宏定義,可以在代碼中直接使用。而 NUL 表示字符 ‘\0’,也就是字符串結束標志,它是 ASCII 碼表中的第 0 個字符。NUL 沒有在 C 語言中定義,僅僅是對 ‘\0’ 的稱呼,不能在代碼中直接使用。

四.猜你喜歡

  • C 語言邏輯運算符
  • C 語言三目運算符
  • C 語言逗號表達式
  • C 語言 sizeof 和 strlen 函數區別
  • C 語言 strcpy 和 strcpy_s 函數區別
  • C 語言 memcpy 和 memcpy_s 區別
  • C 語言 數組定義和使用
  • C 語言 數組遍歷
  • C 語言 數組下標越界
  • C 語言 數組內存溢出
  • C 語言 數組下標越界和內存溢出區別
  • C 語言 二維數組定義和使用
  • C 語言 二維數組行數和列數計算
  • C 語言 指針聲明和定義
  • C 語言 指針 p++ / p–
  • C 語言 p++/§++/_(p++)/_p++
  • C 語言 使用指針遍歷數組
  • C 語言 指針和數組區別
  • C 語言 數組指針
  • C 語言 指針數組
  • C 語言 指針數組和數組指針區別
  • C 語言 空指針 NULL
  • 未經允許不得轉載:猿說編程 ? C 語言 空指針 NULL

    總結

    以上是生活随笔為你收集整理的C语言 空指针 NULL - C语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。