tft每日頭條

 > 圖文

 > c語言指針用法的講解

c語言指針用法的講解

圖文 更新时间:2025-01-10 05:15:22

上兩篇文章給大家介紹了一下内存的概念和内存管理,打下了這些基礎之後今天給大家來講講指針的基本知識。

指針是C語言的精髓同時也是學習者的“噩夢”,在實際嵌入式開發當中每一天都會和指針打交道。其實指針也隻是一個變量而已,隻不過這個變量用來存儲的是一個地址。

C語言指針的基本知識

指針的定義:

c語言指針用法的講解(C語言中的指針是初學者的噩夢)1

指針的賦值:

c語言指針用法的講解(C語言中的指針是初學者的噩夢)2

指針的引用:

c語言指針用法的講解(C語言中的指針是初學者的噩夢)3

指針的尺寸:

  • 指針的尺寸與指針的類型沒有任何關系
  • 指針用來存放的是一個内存的地址, 因此他的大小就應該是該計算機中内存地址的大小,32位系統中為4個字節、64位系統中為8個字節。

c語言指針用法的講解(C語言中的指針是初學者的噩夢)4

野指針:

顧名思義,野指針就是比較“野”的一種指針。是指向一個不确定的内存的指針,這種指針對我們系統而言是非常危險的。

危害:

      • 情節不嚴重的情況下你有可能可以正常使用,但是一般情況下會出現 段錯誤,導緻程序崩潰
      • 情節嚴重的,有可能導緻系統崩潰

c語言指針用法的講解(C語言中的指針是初學者的噩夢)5

産生原因:

      • 定義的時候沒有給他初始化
      • 他所指向的内存被釋放了,系統已經回收了這個内存
      • 指針越界

如何解決:

      • 定義的時候記得給他初始化(讓它指向一塊确定的内存)
      • 被釋放\ free() 之後的指針應該不再使用(釋放之後一般讓它指向NULL)
      • 确定好内存的大小不要越界
空指針:

空指針是一個保存了零地址的一個指針,也就零地址指針。

在某一些情況下我們定義了一個指針但是暫時不知道該指向哪裡,想等待後面的程序運行時候再分配地址,又不想讓野指針出現危害系統的安全,可以讓該指針先指向一個相對安全的位置。一般會讓它指向0x000000000 這個地址。

c語言指針用法的講解(C語言中的指針是初學者的噩夢)6

指針運算:

指針的運算就是在當前指針的地址上增加或減小N個字節,隻能加減,乘除沒有意義。

指針的加法: p 1 則表示在p目前指向地址值上增加1個單位(指針的類型)

指針的減法: p-1 則表示在p目前指向地址值上下減1個單位(指針的類型)

c語言指針用法的講解(C語言中的指針是初學者的噩夢)7

好了,今天給大家梳理了一遍指針的基本知識,下一篇會帶着大家剖析指針與數組之間的愛恨情仇。

我是森哥,後面會繼續給大家分享嵌入式和C語言知識,喜歡的朋友和嵌入式學習者可以關注我一起進步!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved